gpt4 book ai didi

mysql - 在 MySQL 中使用 GROUP_CONCAT 并考虑 null

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:13 25 4
gpt4 key购买 nike

我有一个包含 3 个字段的表。该表记录了过去 30 天内每天与相关国家/地区的通话时长。

C_Date      Country         C_Time  
2012-10-01 India 1316
2012-10-01 USA 12
2012-10-01 UK 132
2012-10-01 Kuwait 134
2012-10-02 UK 135
2012-10-02 USA 136
2012-10-02 Singapore 137

我需要使用这些记录生成一个表格和一个折线图,我尝试编写 MySQL 查询。基本上我只需要为选定的国家/地区绘制此图。
假设我想要印度、美国和英国;然后我需要像这样提取记录集:

C_Date     | Calling_Time
-----------+----------------------------------
2012-10-01 | 1316,12,132
2012-10-02 | 0,136,135
2012-10-03 | ...
... | ...

这是我的查询:

SELECT C_Date, GROUP_CONCAT(C_Time
ORDER BY Country
SEPARATOR ',') as Calling_Time
FROM Call_Table t
WHERE Country
IN ('India', 'USA', 'UK')
GROUP BY C_Date
ORDER BY C_Date

结果更接近,但它忽略了空结果。

C_Date     | Calling_Time
-----------+----------------------------------
2012-10-01 | 1316,12,132
2012-10-02 | 136,135 (expected 0,136,135)

我可以更改我的查询以获得像 0,136,135 OR ,136,135 OR null,136,135 这样的 Calling_Time 吗?代表每个国家)

提前致谢!

最佳答案

试试这个查询-

SELECT
C_Date,
CONCAT(MAX(IF(country = 'India', C_Time, 0)), ',',
MAX(IF(country = 'USA', C_Time, 0)), ',',
MAX(IF(country = 'UK', C_Time, 0))) Calling_Time
FROM call_table
GROUP BY C_Date

+------------+--------------+
| C_Date | Calling_Time |
+------------+--------------+
| 2012-10-01 | 1316,12,132 |
| 2012-10-02 | 0,136,135 |
+------------+--------------+

关于mysql - 在 MySQL 中使用 GROUP_CONCAT 并考虑 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227816/

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