Php 在mysql中使用两个group by从同一个表中获取数据
我有一个表名作为顾问,有4个字段(id、名称、用户类型、创建日期)。我需要编写一个mysql查询,以返回每个月的用户类型计数。我的表格中的ie用户类型为个人和组(I,G),共10个条目。4名为个人,6名为团体。7月登记了2人,8月登记了2人。4名集团成员于7月注册,2名于8月注册。所以我的输出是 1) 七月份个人登记册的计数? 2) 7月份的团体登记计数? 3) 八月份的个人登记计数? 4) 八月份的个人登记计数 样本表数据 户表 预期结果 我需要在条形图中填充此日期。最近几天我对这个问题有点困惑。如果可能的话,请帮助我。 提前感谢首先,您需要从datetime开始按月分组,然后是个人和组Php 在mysql中使用两个group by从同一个表中获取数据,php,mysql,codeigniter,phpmyadmin,Php,Mysql,Codeigniter,Phpmyadmin,我有一个表名作为顾问,有4个字段(id、名称、用户类型、创建日期)。我需要编写一个mysql查询,以返回每个月的用户类型计数。我的表格中的ie用户类型为个人和组(I,G),共10个条目。4名为个人,6名为团体。7月登记了2人,8月登记了2人。4名集团成员于7月注册,2名于8月注册。所以我的输出是 1) 七月份个人登记册的计数? 2) 7月份的团体登记计数? 3) 八月份的个人登记计数? 4) 八月份的个人登记计数 样本表数据 户表 预期结果 我需要在条形图中填充此日期。最近几天我对这个问题有点困
SELECT
COUNT(i.id) AS individual_count,
COUNT(g.id) AS Group_count,
DATE_FORMAT(u.joined_date, '%M') AS `Month`
FROM usertable AS u
LEFT JOIN usertable AS i ON u.id= i.id AND i.user_type = 'I'
LEFT JOIN usertable AS g ON u.id= g.id AND g.user_type = 'G'
GROUP BY DATE_FORMAT(u.joined_date, '%M')
这会让你得到你想要的结果。我经常看到“计数”这个词。使用MySQL的聚合函数,还有另一个聚合函数。由于要连接3个表,所以效率要低得多。
individual_count |Group_count| Month
----------------------------------
2 | 4 | July
2 | 2 | August
SELECT
COUNT(i.id) AS individual_count,
COUNT(g.id) AS Group_count,
DATE_FORMAT(u.joined_date, '%M') AS `Month`
FROM usertable AS u
LEFT JOIN usertable AS i ON u.id= i.id AND i.user_type = 'I'
LEFT JOIN usertable AS g ON u.id= g.id AND g.user_type = 'G'
GROUP BY DATE_FORMAT(u.joined_date, '%M')