【发布时间】:2021-07-25 12:13:03
【问题描述】:
好的,所以我有一个这样的 df:
MEETING_ID sSTART
322 2021-05-01 23:45:00.000
322 2021-05-03 13:45:00.000
312 2021-05-11 23:45:00.000
312 2021-05-13 23:45:00.000
我想要的只是一张表格,它可以告诉我之前发生了多少次会议以及即将召开多少次会议......
为此,我使用了 CURRENT_TIMESTAMP 函数,不确定这是否错误,但这是我的查询不起作用...就本文而言,假设当前时间是 2021 年 5 月 2 日晚上 10:40
WITH s AS (
SELECT MEETING_ID,
CASE WHEN sSTART > CURRENT_TIMESTAMP THEN 1
ELSE 0
END PREVIOUS_MEETING,
CASE WHEN sSTART < CURRENT_TIMESTAMP THEN 1
ELSE 0
END UPCOMING_MEETING
FROM df
),
ddd AS (SELECT
MEETING_ID,
COUNT(PREVIOUS_MEETING),
COUNT(UPCOMING_MEETING)
FROM s
GROUP BY MEETING_ID
)
SELECT *
FROM ddd
最后我想要这个:
MEETING_ID PREVIOUS_MEETING UPCOMING_MEETING
322 1 1
312 2 0
我不确定为什么会这样,但一些解释会有所帮助。
【问题讨论】:
-
我认为您可能希望使用
SUM()代替COUNT(),因为您返回 1 表示匹配记录,返回 0 表示 PREVIOUS_MEETING 和 UPCOMING_MEETING 不匹配