如何使用子查询从计数语句中列出?
How to use sub query to list from a count statement?
我们在 TOTEMP table 中有一些员工有重复的 CIVILID,现在我想找到他们的名字与 EMP table
我尝试了以下查询
SELECT P.FIRSTNAME,ID
FROM EMP p
where exists (SELECT CIVILID, COUNT (CIVILID)
FROM TOTEMP AS D
group by CIVILID
HAVING (COUNT (CIVILID) >1) )
Selects all the records from the EMP table
2 ) 我尝试了 IN 语句
SELECT P.FIRSTNAME,p.ID
FROM EMP p ,UDFEMP k
where p.ID in (SELECT CIVILID ,COUNT (CIVILID)
FROM TOTEMP AS D
group by CIVILID
HAVING (COUNT (CIVILID) >1) )
Only one expression can be specified in the select list when the
subquery is not introduced with EXISTS.
此致
SELECT p.FIRSTNAME,p.ID,d.CIVILID
FROM EMP p inner join TOTEMP d
on p.id = d.id
where d.CIVILID in (select CIVILID from TOTEMP
group by CIVILID having count(ID)>1 );
希望对您有所帮助!
这可以通过 exists
和 in
运算符来完成,但是您的两个查询都有问题。
exists
变体缺少 p
和 d
之间的关系:
SELECT p.firstname, p.id
FROM emp p
WHERE EXISTS (SELECT *
FROM totemp d
WHERE p.id = d.civilid -- Here!
GROUP BY civilid
HAVING COUNT(civilid) > 1)
in
变体只需要 select 内部查询中的 id
,而不是多列(并且不需要与 udfemp
交叉连接) :
SELECT p.firstname, p.id
FROM emp p
where p.id in (SELECT civilid
FROM totemp
GROUP BY civilid
HAVING COUNT(civilid) > 1)
我们在 TOTEMP table 中有一些员工有重复的 CIVILID,现在我想找到他们的名字与 EMP table
我尝试了以下查询
SELECT P.FIRSTNAME,ID
FROM EMP p
where exists (SELECT CIVILID, COUNT (CIVILID)
FROM TOTEMP AS D
group by CIVILID
HAVING (COUNT (CIVILID) >1) )
Selects all the records from the EMP table
2 ) 我尝试了 IN 语句
SELECT P.FIRSTNAME,p.ID
FROM EMP p ,UDFEMP k
where p.ID in (SELECT CIVILID ,COUNT (CIVILID)
FROM TOTEMP AS D
group by CIVILID
HAVING (COUNT (CIVILID) >1) )
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
此致
SELECT p.FIRSTNAME,p.ID,d.CIVILID
FROM EMP p inner join TOTEMP d
on p.id = d.id
where d.CIVILID in (select CIVILID from TOTEMP
group by CIVILID having count(ID)>1 );
希望对您有所帮助!
这可以通过 exists
和 in
运算符来完成,但是您的两个查询都有问题。
exists
变体缺少 p
和 d
之间的关系:
SELECT p.firstname, p.id
FROM emp p
WHERE EXISTS (SELECT *
FROM totemp d
WHERE p.id = d.civilid -- Here!
GROUP BY civilid
HAVING COUNT(civilid) > 1)
in
变体只需要 select 内部查询中的 id
,而不是多列(并且不需要与 udfemp
交叉连接) :
SELECT p.firstname, p.id
FROM emp p
where p.id in (SELECT civilid
FROM totemp
GROUP BY civilid
HAVING COUNT(civilid) > 1)