COALESCE 表示没有行返回

COALESCE for no rows returned

我正在使用 COALESCE 来 return 第一个非空值。在下面的查询中,我试图获取具有最新数据/或某些数据(从周日到周一开始)的那一天的数据。所以假设如果周日、周二、周一有数据,它应该 return 我周日的数据。如果所有天都有数据,应该是return我周日(7)的数据。但是下面的查询没有 return 任何东西。可能是因为值 returned 是零行而不是 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))

当我 运行 像下面这样的个人查询时,它 return 是我的数据。

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'

您需要让子select选择星期几,例如:

SELECT *
FROM status_summary
WHERE day_of_week(Datetime) = (SELECT MAX(day_of_week(Datetime)) FROM status_summary)