powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы + группировка по полю.
2 сообщений из 2, страница 1 из 1
Выборка из таблицы + группировка по полю.
    #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
Выборка из таблицы + группировка по полю.
    #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
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы + группировка по полю.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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