关于2列和单表的简单sql查询
表名doctor\u dtl 问题:多次插入相同的医生名称,并针对所有相同的名称生成多个医生代码,因此医生名称重复,但这些医生代码不同。我需要一个查询,可以在其中显示所有重复的医生名称和所有医生代码? 例如:关于2列和单表的简单sql查询,sql,oracle,Sql,Oracle,表名doctor\u dtl 问题:多次插入相同的医生名称,并针对所有相同的名称生成多个医生代码,因此医生名称重复,但这些医生代码不同。我需要一个查询,可以在其中显示所有重复的医生名称和所有医生代码? 例如: john doc0001 john doc0010 amit doc0006 amit doc1000 amit doc1010 我希望显示这种类型的输出您可以使用它 SELECT doc
john doc0001
john doc0010
amit doc0006
amit doc1000
amit doc1010
我希望显示这种类型的输出您可以使用它
SELECT
doc_code,
doctor_name
FROM doctor_dtl
WHERE doctor_name IN (
SELECT
doctor_name
FROM doctor_dtl
GROUP BY doctor_name
HAVING COUNT(*) > 1)
你可以用它
SELECT
doc_code,
doctor_name
FROM doctor_dtl
WHERE doctor_name IN (
SELECT
doctor_name
FROM doctor_dtl
GROUP BY doctor_name
HAVING COUNT(*) > 1)
如果您使用的是SQL Server,这里有一种方法
如果您使用的是SQL Server,这里有一种方法
ORA-00900:在group bymy查询中显示的SQL语句无效select a11.DOC\u ACT\u NAME,a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME,countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST group by DOC\u ACT\u NAME具有countDOC\u ACT\u NAME>1 a12在a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u名称组上按a11.DOC\u ACT\u ACT\u名称,a11.DOC_CD@SHOWMIKSETTA:-请删除位于having和count之间的左括号,也可以删除a12之后的join关键字,因为它已经在a11之后。从RCP\U DOCUR\U DTL\U MST a11 join select DOC\U ACT\U NAME中选择a11.DOC\U CD,countDOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a11.DOC\u ACT\u NAME Group by a11.DOC\u ACT\u NAME,a11.DOC\u CD选择a11.DOC\u ACT\u NAME,a11.DOC\u CD从RCP\u DOCTOR\u DTL\u MST a11加入选择DOC\u ACT\u NAME,countDOC\u ACT\u NAME=a12.DOC\u ACT\u NAME=a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME Group by a11.DOC\u ACT\u NAME组by a11.DOC\u NAME,a11.DOC\u CDORA-00900:组上显示的无效SQL语句by我的查询选择a11.DOC\u ACT\u NAME,从RCP\u DOC\u DTL\u MST a11加入选择DOC\u ACT\u NAME,countDOC\u ACT\u NAME来自RCP\u DOCTOR\u DTL\u MST组,按countDOC\u ACT\u NAME>1 a12的DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME组,按a11.DOC\u ACT\u NAME,a11.DOC_CD@SHOWMIKSETTA:-请删除位于having和count之间的左括号,并删除a12后面的join关键字,因为它已经在a11.select a11.DOC\u ACT\u NAME、a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME、countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST Group by DOC\u ACT\u NAME具有countDOC\u ACT\u NAME>1的DOC\u CD、a12 join on a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME组by a11.DOC\u,a11.DOC\u CD from RCP\u DOCTOR\u DTL\u MST a11 join select DOC\u ACT\u NAME,countDOC\u ACT\u NAME from RCP\u DOCTOR\u DTL\u MST Group by DOC\u ACT\u NAME在a11.DOC\u ACT\u NAME=a12.DOC\u ACT\u NAME分组by a11.DOC\u ACT\u NAME,a11.DOC\u CDORA-00923:在[Count]上预期光标所在的位置未找到from关键字ORA-00923:在[Count]上的expectedcursor处未找到FROM关键字
select a11.doctor_name, a11.doc_code
from doctor_dtl a11 join (select
doctor_name, count(doctor_name) from doctor_dtl Group by doctor_name having
count(doctor_name) > 1 ) a12 on a11.doctor_name = a12.doctor_name group
by a11.doctor_name, a11.doc_code
SELECT doc_code,
doctor_name
FROM
(
SELECT doc_code,
doctor_name,
COUNT(doctor_name) OVER(PARTITION BY doctor_name) [Count]
FROM <table_name>
) a
WHERE [Count] > 1;
doc_code doctor_name
doc0006 amit
doc1000 amit
doc1010 amit
doc0001 john
doc0010 john