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)
我正在使用 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)