Имя таблицы doctor_dtl

column 1 name doc_code
column 2 name doctor_name

Проблема: одно и то же doc_name вставляется несколько раз, и генерируется несколько doc_code для одного и того же имени, поэтому имя доктора дублируется, но там doc_code разные. Я хочу запрос, где я могу отобразить все дубликаты имени доктора и весь код доктора? пример:

         john doc0001
         john doc0010
         amit doc0006
         amit doc1000
         amit doc1010

Я хочу, чтобы этот тип вывода отображался

0
SHOWMIK SETTA 10 Ноя 2017 в 08:20

3 ответа

Лучший ответ
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
0
GauravS 10 Ноя 2017 в 05:35

Вот один из подходов, если вы работаете SQL Server

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
1
Yogesh Sharma 10 Ноя 2017 в 05:42

Вы можете использовать это.

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 Fiddle

1
Serkan Arslan 10 Ноя 2017 в 05:48