gpt4 book ai didi

mysql - 如何组合这些按同一字段分组的查询?

转载 作者:行者123 更新时间:2023-11-29 14:13:31 25 4
gpt4 key购买 nike

我有以下三个疑问

SELECT COUNT(*) as cached_type_a, DATE(datetime) as datetime
FROM requests
WHERE cached = 'a'
GROUP BY DAY(datetime);

SELECT COUNT(*) as cached_type_b, DATE(datetime) as datetime
FROM requests
WHERE cached = 'b'
GROUP BY DAY(datetime);

SELECT COUNT(*) as cached_type_c, DATE(datetime) as datetime
FROM requests
WHERE cached = 'c'
GROUP BY DAY(datetime);

是否可以将它们组合成一个包含 4 列的查询

cached_type_acached_type_bcached_type_c日期时间

最佳答案

如果cache只有三个可能的值,则可以使用这个,

SELECT DATE(datetime) as datetime,
SUM(CASE WHEN cached = 'a' THEN 1 ELSE 0 END) cached_a,
SUM(CASE WHEN cached = 'b' THEN 1 ELSE 0 END) cached_b,
SUM(CASE WHEN cached = 'c' THEN 1 ELSE 0 END) cached_c
FROM requests
GROUP BY DAY(datetime)

否则,如果您有多个缓存,则可以使用Prepared Statement

SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE WHEN cached = ''',
cached,
''' then 1 ELSE 0 end) AS ',
CONCAT('cached_',cached)
)
) INTO @sql
FROM requests;

SET @sql = CONCAT('SELECT DATE(datetime) as datetime, ', @sql, '
FROM requests
GROUP BY DAY(datetime)');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 如何组合这些按同一字段分组的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080106/

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