select * from hari;
+------+------------+-------+
| id | mydate | email |
+------+------------+-------+
| 1 | 2009-10-10 | 1111 |
| 1 | 2009-10-10 | 1111 |
| 1 | 2009-10-10 | 2222 |
| 2 | 2010-11-11 | 3333 |
| 2 | 2010-11-11 | 3333 |
+------+------------+-------+
5 rows in set (0.01 sec)在按id、mydate和电子邮件分组后,只有2条记录计算id =1,我是如何实现这一点的?
有人给了我以下的查询,其中第一个ID的计数是2(正确),但我发现这个查询非常混乱,并猜测一定有更好的方法。
mysql>SELECT
count(sel2.refid2 ) as recCount,
refid2, recDate2
FROM
(SELECT id AS refid2, mydate AS recDate2
FROM hari AS ol_Email1
GROUP BY ol_Email1.id, ol_Email1.mydate, ol_Email1.email
) AS sel2
GROUP BY sel2.refid2
+----------+--------+------------+
| recCount | refid2 | recDate2 |
+----------+--------+------------+
| 2 | 1 | 2009-10-10 |
| 1 | 2 | 2010-11-11 |
+----------+--------+------------+
2 rows in set (0.28 sec)CREATE TABLE `hari` (
`id` int(11) default NULL,
`mydate` date default NULL,
`email` varchar(100) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `hari` VALUES (1,'2009-10-10','1111'),(1,'2009-10-10','1111'),(1,'2009-10-10','2222'),(2,'2010-11-11','3333'),(2,'2010-11-11','3333');发布于 2010-08-04 10:57:06
SELECT * FROM hari WHERE id = 1 GROUP BY email 发布于 2010-08-04 11:19:39
就像..。
SELECT *,
COUNT(*)
FROM hari
GROUP BY id, mydate, email;(我不太确定要按哪些列分组)
https://stackoverflow.com/questions/3404790
复制相似问题