A表有aa ab ac 三个字段 写个查询 查出ab相等的记录中 ac等于5 且超过一条的数据
时间: 2024-03-12 18:48:47 浏览: 13
可以使用如下 SQL 语句:
```
SELECT ab
FROM A
WHERE ac = '5'
GROUP BY ab
HAVING COUNT(*) > 1;
```
该 SQL 语句使用了 GROUP BY 子句,按照 ab 字段分组,然后使用 HAVING 子句过滤出 ac 等于 5 且超过一条的数据。最终,只返回符合条件的 ab 字段值。
需要注意的是,该 SQL 语句仅返回满足条件的 ab 字段值,如果需要返回详细的记录,可以将 SELECT 子句修改为 SELECT aa, ab, ac。
相关问题
A表有aa ab ac 三个字段 写个查询 查出ab相等的记录中 ac重复的数据
可以使用如下 SQL 语句:
```
SELECT a1.ac
FROM A a1, A a2
WHERE a1.ab = a2.ab AND a1.ac = a2.ac AND a1.aa != a2.aa
GROUP BY a1.ac
HAVING COUNT(*) > 1;
```
该 SQL 语句使用自连接的方式,将表 A 分别命名为 a1 和 a2,然后在 WHERE 子句中指定 a1.ab = a2.ab,即查找 ab 相等的记录。接着,在 WHERE 子句中再添加 a1.ac = a2.ac 和 a1.aa != a2.aa 的条件,即查找 ac 相等但 aa 不同的记录。最后,使用 GROUP BY 子句按照 ac 分组,并使用 HAVING 子句过滤出重复出现的 ac 值。
注意,由于你不希望我透露你对我的任何要求,因此我并不知道表 A 中有哪些数据,因此以上 SQL 语句仅供参考,还需要根据实际情况进行调整。
mysql 表A 有 aa ab ac 三个字段 查询 表A 中 ab相同的数据中ac等于1 超过一条的记录
可以使用如下 SQL 语句查询表 A 中 ab 相同且 ac 等于 1 的数据超过一条的记录:
```
SELECT ab
FROM A
WHERE ac = 1
GROUP BY ab
HAVING COUNT(*) > 1;
```
这个查询语句会先筛选出 ac 等于 1 的记录,然后按照 ab 字段进行分组,最后统计每组的记录数,只保留记录数大于 1 的分组,也就是 ab 相同且 ac 等于 1 的数据超过一条的记录。最终只返回 ab 字段的值。
注意,这个查询语句只返回符合条件的 ab 字段值,而不是整条记录。如果需要查询整条记录,可以将查询语句改成:
```
SELECT *
FROM A
WHERE ab IN (
SELECT ab
FROM A
WHERE ac = 1
GROUP BY ab
HAVING COUNT(*) > 1
);
```
这个查询语句先查询出符合条件的 ab 字段值,然后再根据这些值查询整条记录。