【发布时间】:2020-05-19 04:24:26
【问题描述】:
我有一个名为评估的表。它有 4 列:user_id、季度、年份、内容。
我想选择连续两个季度的所有字段(例如:当前季度是 2,所以我想选择 2020 年第 1 季度和 2019 年第 4 季度的所有字段)
这是我的查询:
SELECT e1.user_id,
e1.quarter AS last_quarter,
e1.year AS last_year,
e1.content AS content_last_quarter,
e2.quarter AS quarter,
e2.year AS year,
e2.content AS content_quarter
FROM evaluations AS e1 JOIN evaluations AS e2 ON e2.user_id = e1.user_id
WHERE (e1.year = 2019)
AND (e1.quarter = 4)
AND (e2.year = 2020))
AND (e2.quarter = 1)
AND e1.deleted_at IS NULL
AND e2.deleted_at IS NULL
但如果(2020 年第 1 季度)的记录存在,(2019 年第 4 季度)的记录为空,反之亦然,则无结果。我想选择是否存在或两者都存在。谁能帮我?
对不起,我的英语水平不好。
谢谢!
【问题讨论】:
-
如果您只使用单个时间戳列而不是季度和年份的单独列,您的生活会轻松得多。
-
@TimBiegeleisen 不要改变桌子的设计。
标签: sql postgresql