【发布时间】:2011-03-01 22:10:14
【问题描述】:
我有一个包含两个字段的表:ID 和 USERNAME。如何进行 SELECT 查询,只选择分组最少两行的行?
这是 MySQL 表中的内容:
标识|用户名
1 |彼得
2 |杰克
3 |彼得
4 |安
5 |彼得
6 |杰克
我想选择这样的结果:
彼得 (3)
千斤顶 (2)
用户名“ann”将在选择中被忽略,因为它只有一行。
补充:无法根据我的情况实施。好的,我将展示我真正想做的事情,如下所示: (SELECT ip AS ip1 FROM ip_denylist) UNION (SELECT COUNT(user) AS sometotal FROM entrys WHERE ip = ip1 AND HAVING COUNT(sometotal) > 1) GROUP BY用户。
但它不起作用!你能证明它应该是怎样的吗?
这个select的思路是第一:从ip_denylist表中选择每个ip地址,第二:选择按分组表入口中具有相同IP地址的用户行。
【问题讨论】:
-
您的问题几乎与this 帖子相同。
-
无法根据我的情况实施。好的,我将展示我真正想做的事情,如下所示: (SELECT ip AS ipi1 FROM ip_denylist) UNION (SELECT COUNT(user) AS sometotal FROM entrys WHERE ip = ip1 AND HAVING COUNT(sometotal) > 1) GROUP BY用户。但它不工作!你能说明它应该是怎样的吗?
-
你需要这样的东西吗?
SELECT user, COUNT(user) AS sometotal FROM entrances WHERE ip in (SELECT ip FROM ip_denylist) GROUP BY user -
@criticus 我正在尝试进行此选择:
SELECT ip, COUNT(user) AS sometotal FROM entrances WHERE ip in (SELECT ip FROM ip_denylist WHERE status='1') HAVING COUNT(sometotal) > 2 GROUP BY user- 但它不起作用。想法是:从所有 ip 的存储表 IP_DENYLIST 中选择 IP 然后在 ENTRANCES 搜索属于该 IP 的两个以上的用户 表,对所有找到的用户进行分组。然后将其显示在网页上,例如:IP: 192.0.0.1 has 3 accounts。这是找多账号注册! -
@ilnur777 您的查询应该有效,只需添加
GROUP BY。所以你会得到SELECT ip, COUNT(user) AS sometotal FROM entrances WHERE ip in (SELECT ip FROM ip_denylist WHERE status='1') GROUP BY ip HAVING COUNT(sometotal) > 2
标签: mysql select group-by rows