Day45 - 2018-05-21

这段时间在整理前端架构,没多少时间学这个了O.O。学5分钟打个卡...

如果子查询只返回一个值,则可以在逻辑语句中使用该值,例如 WHERE、HAVING,甚至 SELECT,该值可以嵌套在 CASE 语句中。
注意,在条件语句中编写子查询时,不能包含别名。这是因为该子查询会被当做单个值(或者对于 IN 情况是一组值),而不是一个表格。
同时注意,这里的查询对应的是单个值。如果我们返回了整个列,则需要使用 IN 来执行逻辑参数。如果我们要返回整个表格,则必须为该表格使用别名,并对整个表格执行其他逻辑。

#一个例子
SELECT AVG(standard_qty) avg_s, AVG(gloss_qty) avg_g, AVG(poster_qty) avg_p, SUM(total_amt_usd) month_total
FROM orders
WHERE DATE_TRUNC('month', occurred_at) = 
    (SELECT DATE_TRUNC('month', MIN(occurred_at)) 
    FROM orders)
GROUP BY DATE_TRUNC('month', occurred_at)

你可能感兴趣的:(Day45 - 2018-05-21)