PostgreSQL
想对通过聚合创建的查询中的元素执行 WHERE 条件,就需要使用 HAVING。HAVING总是出现在GROUP BY之后,它可以对聚合的数据过滤,而WHERE不能
SELECT s.name, COUNT(a.id)
FROM accounts a
JOIN sales_reps s
ON a.sales_rep_id = s.id
GROUP BY 1
HAVING COUNT(a.id) > 5
ORDER BY 2 DESC
DATE_TRUNC 使你能够将日期截取到日期时间列的特定部分。常见的截取依据包括日期
、月份
和 年份
。这是一篇 MODE 发表的精彩博文,介绍了关于此函数的强大功能。
DATE_PART 可以用来获取日期的特定部分,但是注意获取 month
或 dow
(day of week)意味着无法让年份按顺序排列。而是按照特定的部分分组,无论它们属于哪个年份。
要了解其他日期函数,请参阅这篇文档
CASE 条件语句
-
CASE 语句始终位于 SELECT 条件中。
-
CASE 必须包含以下几个部分:WHEN、THEN 和 END。ELSE 是可选组成部分,用来包含不符合上述任一 CASE 条件的情况。
-
你可以在 WHEN 和 THEN 之间使用任何条件运算符编写任何条件语句(例如 WHERE),包括使用 AND 和 OR 连接多个条件语句。
-
你可以再次包含多个 WHEN 语句以及 ELSE 语句,以便处理任何未处理的条件。
网友评论