首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为独特的行自联接?

为独特的行自联接?
EN

Stack Overflow用户
提问于 2010-08-04 10:53:00
回答 2查看 372关注 0票数 0
代码语言:javascript
复制
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(正确),但我发现这个查询非常混乱,并猜测一定有更好的方法。

代码语言:javascript
复制
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)

代码语言:javascript
复制
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');
EN

回答 2

Stack Overflow用户

发布于 2010-08-04 10:57:06

代码语言:javascript
复制
SELECT * FROM hari WHERE id = 1 GROUP BY email 
票数 1
EN

Stack Overflow用户

发布于 2010-08-04 11:19:39

就像..。

代码语言:javascript
复制
SELECT *,
       COUNT(*)
    FROM hari
    GROUP BY id, mydate, email;

(我不太确定要按哪些列分组)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档