Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы + группировка по полю. / 2 сообщений из 2, страница 1 из 1
08.10.2008, 10:33
    #35582287
Flake
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из таблицы + группировка по полю.
Есть таблица orders: track_name(string), album_name(string)
Нужно вывести все записи, и сгруппировав их по track_name, чтобы узнать сколько было сделано заказов на данный трэк.

Вот запрос:
Код: plaintext
1.
2.
SELECT track_name, COUNT(track_name) AS counter
FROM orders GROUP BY track_name order by counter desc;
Работает нормально, но нужно при это ещё выводить album_name.
Если сделать так:
Код: plaintext
1.
2.
3.
4.
SELECT album_name, track_name, COUNT(track_name) AS counter
FROM orders
WHERE time BETWEEN '2008-10-05' AND '2008-10-10' 
GROUP BY track_name order by counter desc;
То ругается: column "orders.album_name" must appear in the GROUP BY clause or be used in an aggregate function

Если добавить album_name в GROUP BY, то тогда теряется группировка по track_name.
Как сохранить группировку по track_name, при этом выводя ещё и album_name
...
Рейтинг: 0 / 0
08.10.2008, 11:07
    #35582396
Выборка из таблицы + группировка по полю.
Встречный вопрос: что делать, если трек встречается более чем в одном альбоме?
Какой альбом показывать? Если никакой разницы нет в том, какой альбом показать, то можно и так сделать:

Код: plaintext
1.
2.
3.
4.
5.
SELECT max(album_name) as max_album_name, 
       track_name, 
       COUNT(track_name) AS counter
FROM orders
WHERE time BETWEEN '2008-10-05' AND '2008-10-10' 
GROUP BY track_name order by counter desc;
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы + группировка по полю. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]