
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.08.2015, 23:08
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
Добрый день. Вот пример простой таблицы f b Иванов а Иванов б Иванов г Петров б Петров д Сидоров а Сидоров д Фамилии в примере уникальны, т.е. на каждого человека есть несколько строк. Выбрать тех у кого есть строка с буквой б во втором столбце - это простой селект. SELECT f FROM table WHERE b='б' А можно ли простым запросом выбрать тех у кого нет какого либо значения, скажем в том же столбце буквы г? Т.е. в данном примере, Иванов в этот список не попадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.08.2015, 08:15
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
VladRostДобрый день. Вот пример простой таблицы f b Иванов а Иванов б Иванов г Петров б Петров д Сидоров а Сидоров д Фамилии в примере уникальны, т.е. на каждого человека есть несколько строк. Выбрать тех у кого есть строка с буквой б во втором столбце - это простой селект. SELECT f FROM table WHERE b='б' А можно ли простым запросом выбрать тех у кого нет какого либо значения, скажем в том же столбце буквы г? Т.е. в данном примере, Иванов в этот список не попадает.Значит из всех, кто есть, надо вычесть тех, у кого есть буква "г". Детали на ваше усмотрение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.08.2015, 13:23
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
То есть делать две выборки и сливать вместе? Я пока решил так - делаю группировку по фамилии, вторую колонку string_agg в одну строку и NOT LIKE, но на мой взгляд слишком сложно получается. одним select-ом не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.08.2015, 13:39
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
VladRost, select f from t group by f having count(1) filter (where b='г') = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.08.2015, 13:45
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
VladRost, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2015, 09:35
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
p2., Спасибо, работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2015, 09:36
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
qwwq, Не совсем то. Строки с отсутствием нужного значения есть почти у всех. Т.е. в итоговый список попадают и те кто не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2015, 14:00
|
|||
|---|---|---|---|
|
|||
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
VladRost, Почитайте про [NOT] EXISTS - подзапросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2015, 15:41
|
|||
|---|---|---|---|
Выбрать группы строк с отсутствием значения. |
|||
|
#18+
Щукина АннаVladRost, Почитайте про [NOT] EXISTS - подзапросы +1 разница будет видна на объёмах, при наличии нужных индексов. Правда скорее всего понадобится дополнительный handjob известного вида [ т.к. планер постгреса не умеет быстрый distinct по сильно вырожденному индексированному значению. но это детали] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1997814]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 420ms |

| 0 / 0 |
