我正在使用 COALESCE 回傳第一個非空值。在下面的查詢中,我試圖獲取具有最新資料/或某些資料的一周中的那一天的資料(從周日開始 - 周一)。因此,假設周日、周二、周一有資料,它應該回傳周日資料。如果所有天都有資料,它應該回傳我周日 (7) 的資料。但下面的查詢不回傳任何內容。可能是因為回傳的值是零行而不是 null ??
SELECT *
FROM
status_summary
WHERE COALESCE(("day_of_week"(Datetime) = 7),("day_of_week"(Datetime) = 6),
("day_of_week"(Datetime) = 5),("day_of_week"(Datetime) = 4),
("day_of_week"(Datetime) = 3),("day_of_week"(Datetime) = 2),
("day_of_week"(Datetime) = 1))
當我像下面那樣運行單個查詢時,它會回傳我的資料。
SELECT *
FROM
status_summary
WHERE COALESCE(("day_of_week"(Datetime) = 5))
或者
SELECT *
FROM
status_summary
WHERE COALESCE(("day_of_week"(Datetime) = 4))
語法在 presto (AWS Athena) 中,但我也不介意 sql 語法。
SQL : datename(day,MyDate) = 'Sunday'
uj5u.com熱心網友回復:
您需要讓子選擇選擇星期幾,例如:
SELECT *
FROM status_summary
WHERE day_of_week(Datetime) = (SELECT MAX(day_of_week(Datetime)) FROM status_summary)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/411115.html
標籤:
