数据库 SQL 查询语句

发布网友 发布时间:2022-04-23 21:39

我来回答

5个回答

热心网友 时间:2022-04-08 20:55

SELECT *
FROM tab
WHERE number in (
SELECT number
FROM tab
GROUP by number
HAVING COUNT(type) = 2)

这个更加精确,是不重复的type
SELECT *
FROM tab
WHERE number in (
SELECT number
FROM tab
GROUP by number
HAVING COUNT(distinct type) = 2)

如果你确定只有最多2类型,可以考虑
SELECT * FROM tab t
WHERE EXISTS (SELECT 1 FROM tab WHERE number = t.number and type <> t.type)来自:求助得到的回答

热心网友 时间:2022-04-08 22:13

不明白意思,你的那个查询语句不就满足了。。追问是满足了...如果不知道number等于10呢 我想查 type的值A和B都等于相同number值的时候怎么查询
或者说number有2条数据时怎么查

追答我的代码基本上来自于flyingFish211 ,只加了一个条件 type in ('A','B'),所以贡献是flyingFish211 的。。
SELECT *
FROM tab
WHERE number in (
SELECT number
FROM tab a
where a.type in ('A','B')
GROUP by number
HAVING COUNT(distinct type) = 2)

热心网友 时间:2022-04-08 23:48

SELECT id ,SUM(type)
from
where number = 10
GROUP BY id ,type
HAVING SUM(type)=2

热心网友 时间:2022-04-09 01:39

先抢个位置,是这样么?
select * from tab1 where number in(
select number from tab1 group by number having count(number)>2)

热心网友 时间:2022-04-09 03:47

select * from (表名加上) where number = 10 这个可以把你的那个type 查出来,并且跟你的numben是对应的啊?还是我没有明白你的意思?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com