我在mysql中有一个包含记录的表:
我已经编写了sql查询:
SELECT COUNT(*) AS number_of_contacts, channel_id, direction
FROM cic_case_contacts
WHERE case_id = 328678
GROUP BY channel_id, direction
结果如下:
我想获得如下信息(基于以上数据):
我试图通过使用我的\u sql\u函数组\u concat通过sql查询来获得它,但它不起作用:
SELECT COUNT(*) AS number_of_contacts, channel_id, GROUP_CONCAT(direction SEPARATOR ', ') AS directions
FROM cic_case_contacts
WHERE case_id = 328678 AND id IN(149196, 149195, 149194, 149193, 149192) AND `office_id` = 10
GROUP BY channel_id
ORDER BY channel_id
我将非常感谢你的帮助。
3条答案
按热度按时间oprakyz71#
你可以用
Concat
在MySQL
```drop table if exists Demo;
CREATE TABLE Demo
(
ID INT AUTO_INCREMENT PRIMARY KEY,
channelid int,
Name VARCHAR(20)
);
INSERT INTO Demo(channelid, Name)VALUES
(1,'in'),(1,'out'),(1,'in'),(1,'out'),(2,'in'),(2,'out'),(1,'in'),(1,'out'),(1,'in'),(2,'out'),(2,'in'),(2,'out'),(2,'in'),(1,'in'),(1,'in');
SELECT SQL_CALC_FOUND_ROWS
channelid,
group_concat ( concat(name,':',channelid) )
FROM Demo
group by channelid;
SELECT FOUND_ROWS();
n53p2ov02#
请根据您的要求查找以下工作代码:
您可以查看以下屏幕截图:http://springinfosoft.com/code/groupby_code.png
xyhw6mcr3#
你可以用
GROUP_CONCAT
在子查询上,如下所示:或者简单地使用条件聚合: