выберите отдельный и один другой столбец идентификатора - PullRequest
4 голосов
/ 08 ноября 2010

у меня есть таблица с несколькими столбцами, но мне нужно только 2 выберите идентификатор, отдел из таблицы

если я хочу использовать разные - как мне это сделать? Это не работает: Выберите IDM отдельный отдел из таблицы

Ответы [ 4 ]

4 голосов
/ 08 ноября 2010

Используйте следующее, чтобы получить отдельные строки:

select distinct id, department 
from tbl

Однако вы не можете просто получить отдельные отделы, если в некоторых отделах есть несколько идентификаторов - вам нужно выяснить, какой из нескольких идентификаторов вы хотите (max? Min? Что-то еще?).

3 голосов
/ 29 мая 2011
SELECT  * FROM Table c1
 WHERE ID = (SELECT MIN(ID) FROM Table c2
    WHERE c1.department = c2.department)
2 голосов
/ 08 ноября 2010

DISTINCT должен работать со всеми столбцами по той же причине, по которой GROUP BY должен включать все столбцы (на которых не работают агрегатные функции), и это в том случае, если вы хотите применить DISTINCT к следующему набору результатов

id    department
----------------
1     one
2     one
3     one
4     two

тогда, даже если бы SELECT id, DISTINCT department FROM table_name было разрешено (и это есть в некоторых базах данных; например, mysql может выполнять группирование по отделам и не включать идентификатор в GROUP BY), тогда вы в конечном итоге получите неопределенную ситуацию:

id    department
----------------
?     one
4     two

Что должно идти вместо ? - 1, 2 или 3?

0 голосов
/ 08 ноября 2010

Будет ли группа по решению вашей проблемы?

select id, department from tbl group by id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...