![]() |
|
Модераторы: skyboy |
![]()
|
|
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Такая таблица с данными.
A B C 1 1 1 1 1 2 1 1 3 1 2 4 1 2 5 2 3 6 2 3 7 2 4 8 2 4 9 2 5 10 2 5 11 И.т.д. Необходимо получить количество уникальных B для каждого A То есть A Count(B) 1 2 2 3 Как сделать? SELECT A, COUTN(B) WHERE TRUE GROUP BY A Возращает разумеется A Count(B) 1 5 2 6 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
использовать директиву DISTINCT
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
GROUP BY A,B в данном случае вернет
A COUNT(B) 1 3 1 2 2 2 2 2 2 2 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
Akina, нет. не получится.
на приведенных данных будет: А В Count(*) 1 1 3 1 2 2 2 3 2 2 4 2 2 5 2 т.е. для получения нужного автором A Count(B) 1 2 2 3 надо ещё поверх твоего варианта запроса сделать группировку по А:
а надо-то всего лишь distinct в нужное место воткнуть... Добавлено через 55 секунд в том смысле, что для получения требуемого вполне можно без вложенных запросов обойтись ;) Добавлено через 1 минуту и 25 секунд Хоббит, что, с distinct'ом не разобрался разве? |
|||
|
||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
О созрел
SELECT A, COUTN(DISTINCT B) WHERE TRUE GROUP BY A До этого пытался сделать SELECT DISTINCT A, COUTN(B) WHERE TRUE GROUP BY A Добавлено через 1 минуту и 37 секунд Одновременно написали. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |