gpt4 book ai didi

sql - 当每个想要的 AVG() 值使用不同的 WHERE 子句时,基本 sql : selecting AVG() values from the same column multiple times in one query,

转载 作者:行者123 更新时间:2023-12-04 11:42:27 25 4
gpt4 key购买 nike

我想从一个表中的一列 (value_to_count) 获得三个不同的平均值,其中所有这些平均值都有不同的 WHERE 子句(根据时间)。
示例数据:

###services#### Table
service_id value_to_count time
----------- ----------------------- ---------
604 2054 04:04:50
604 3444 05:00:15
604 2122 07:12:50
604 2144 09:10:50
604 2001 13:12:53
602 2011 15:00:12
602 2115 17:22:35
602 1411 20:22:12
602 1611 21:04:52
602 2111 23:43:45
我目前正在使用此查询来获取 18 到 23 之间的时间平均值:
询问
SELECT 
service_id AS service, AVG(value_to_count) AS primetime
FROM services
WHERE HOUR(time) BETWEEN 18 AND 23
GROUP BY service_id
它给了我这样的结果:
### Result #### 
service primetime
----------- --------------
604 2154
602 2444
现在我想在我已经得到的平均值旁边获得其他平均值。这次我只想通过'HOUR(time) BETWEEN 06 AND 18'和'HOUR(time) BETWEEN 23 AND 06'获得平均值。
这是我想要得到的结果形式:
### Wanted Result #### 
service primetime other_time_interval_1 other_time_interval_2
----------- -------------- ---------------- ------------------
604 2154 2352 1842
602 2444 4122 1224

最佳答案

这应该这样做:

SELECT service_id AS service, 
AVG(case when HOUR(time) BETWEEN 18 AND 23 then value_to_count else null end) AS primetime,
AVG(case when HOUR(time) BETWEEN 06 AND 18 then value_to_count else null end) AS other_time_interval_1
FROM services
GROUP BY service_id

关于sql - 当每个想要的 AVG() 值使用不同的 WHERE 子句时,基本 sql : selecting AVG() values from the same column multiple times in one query,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462873/

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