Как выбрать строки с повторяющимися значениями в таблице? - PullRequest
0 голосов
/ 29 марта 2020

Как выбрать определенный столбец, у которого есть значения того же значения в другом столбце? В этом случае цель состоит в том, чтобы выбрать имена людей, которые преподают в одном классе. Так как же выбрать имена людей, которые преподают в одном классе?

kcode             kname                                               name
---------------  --------------------------------------------------  ----------
TIG098           eBusiness and eGovernment                           Agneta
TIG015           Informationsteknologi och informationssystem        Aida
TIG058           Programmeringsteknik och databaser                  Alan
TIG059           Systemutvecklingsprojekt                            Dina
TIG163           Beslutsstodsystem                                   Faramarz
TIG166           Tillampad IT management                             Fredrik
TIG167           Fordjupning i programmering                         Henrik
TIG016           Verksamheter och information                        Janne
TIG067           Examensarbete                                       Johan
TIG015           Informationsteknologi och informationssystem        Jonas
TIG164           Interaktionsdesign                                  Juha
TIG015           Informationsteknologi och informationssystem        Kalle
TIG015           Informationsteknologi och informationssystem        Kjell
TIG015           Informationsteknologi och informationssystem        Lennart
TIG098           eBusiness and eGovernment                           Lisen
TIG015           Informationsteknologi och informationssystem        Magnus
TIG015           Informationsteknologi och informationssystem        Maria
TIG165           Informatik som vetenskap                            Marie
TIG167           Fordjupning i programmering                         Rikard
TIG015           Informationsteknologi och informationssystem        Urban
TIG165           Informatik som vetenskap                            William

Ожидаемые результаты должны быть следующими:

Agneta
Aida
Henrik
Jonas
Kalle
Kjell
Lennart
Lisen
Magnus
Maria
Marie
Rikard
Urban
William

1 Ответ

1 голос
/ 29 марта 2020

С EXISTS:

select t.name
from tablename t
where exists (
  select 1 from tablename
  where name <> t.name and kcode = t.kcode
)  
order by t.name

См. Демоверсию . Результаты:

| name    |
| ------- |
| Agneta  |
| Aida    |
| Henrik  |
| Jonas   |
| Kalle   |
| Kjell   |
| Lennart |
| Lisen   |
| Magnus  |
| Maria   |
| Marie   |
| Rikard  |
| Urban   |
| William |

Или с group_concat () для каждого класса:

select kcode, kname, group_concat(name) names
from tablename
group by kcode, kname
having count(*) > 1

См. Демонстрационную версию . Результаты:

| kcode  | kname                                        | names                                             |
| ------ | -------------------------------------------- | ------------------------------------------------- |
| TIG015 | Informationsteknologi och informationssystem | Aida,Jonas,Kalle,Kjell,Lennart,Magnus,Maria,Urban |
| TIG098 | eBusiness and eGovernment                    | Agneta,Lisen                                      |
| TIG165 | Informatik som vetenskap                     | Marie,William                                     |
| TIG167 | Fordjupning i programmering                  | Henrik,Rikard                                     |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...