作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的 MySQL 表:
id | label
----------------
1 "john"
1 "henry"
1 "sara"
2 "henry"
3 "tim"
因此,给定的id
可以有多个标签
。我只想保留 id
具有单个 label
的行。因此上表的正确输出是:
id | label
----------------
2 "henry"
3 "tim"
我想我应该按 id
分组并查找每个 id
的标签数量。然后我只取计数为 1 的行。
WITH temp as
(SELECT id
FROM original_table
GROUP BY id
HAVING COUNT(id) > 5)
SELECT *
FROM original_table ot
WHERE ot.id in temp.id
看起来很接近吗?
谢谢!
最佳答案
您可以仅使用联接来仅包含在子查询中出现一次的 ID:
SELECT id,
label
FROM original_table ot
INNER JOIN (
SELECT id
FROM original_table
GROUP BY id
HAVING COUNT(*) = 1
) a ON a.id = ot.id;
或者您可以使用 IN
子句:
SELECT id,
label
FROM original_table
WHERE id IN (SELECT id
FROM original_table
GROUP BY id
HAVING COUNT(*) = 1
);
关于mysql - SQL:过滤掉列值多次出现的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54064845/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!