gpt4 book ai didi

mysql - 在此查询中,如何在 GROUP BY 之前执行 SELECT?

转载 作者:可可西里 更新时间:2023-11-01 07:52:19 26 4
gpt4 key购买 nike

我在看SQL的执行顺序,发现是:

FROM,
WHERE,
GROUP BY,
HAVING,
SELECT,
ORDER BY

但在下面的查询中,“_index”用于 GROUP BY,这怎么可能?

SELECT COUNT(ab.id) AS count, COUNT(ab.id)/365.24 AS average,
IF((SUBSTR(ab.begin, 1, 7) = '2014-08'), '2014-08-18 00:00:00.0 CEST',
IF((SUBSTR(ab.begin, 1, 7) = '2014-09'), '2014-09-18 00:00:00.0 CEST',
IF((SUBSTR(ab.begin, 1, 7) = '2014-10'), '2014-10-18 00:00:00.0 CEST',
IF((SUBSTR(ab.begin, 1, 7) = '2014-11'), '2014-11-18 00:00:00.0 CET',
'0')))) AS _index
FROM active_begin AS ab
INNER JOIN asources AS a ON a.id = ab.asource AND a.unit IN (4, 3, 1)
WHERE (1408226400000 <= ab.begin_time AND ab.begin_time < 1417388400000)
GROUP BY _index

附言。引用此订单:http://www.bennadel.com/blog/70-sql-query-order-of-operations.htm提前致谢。

最佳答案

我认为这(在 GROUP BY 的 SELECT 子句中定义的 ability to use a column alias)可能是某些数据库(但不是全部)允许的非标准扩展。

您应该再次重复确切的定义或将所有内容包装在子选择中。

如果您的数据库能让您摆脱困境,那就太幸运了。

关于mysql - 在此查询中,如何在 GROUP BY 之前执行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28534647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com