powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
18 сообщений из 18, страница 1 из 1
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39007883
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо найти названия 6 самых часто используемых городов, т.е. по колонке city
типа
авторselect city from media group by city order by COUNT(1) DESC LIMIT 6;
а потом для каждого из этого города вывести самую последнюю запись по дате.
типа
order by date DESC limit 1.

Пока я застрял на этом
авторselect id,media.city,date from media right join (select city,count(1) as count from media group by city order by COUNT(1) DESC LIMIT 6) cities on cities.city=media.city order by cities.count DESC;

но здесь я получаю все записи по популярным городам ,а нужно самые последние
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39007908
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39007992
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новичек82,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT
  media.*
  cities.*
FROM (
SELECT
  city,
  COUNT(*) AS city_count,
  MAX(date) AS last_record_date
FROM media 
GROUP BY city
ORDER BY city_count
LIMIT 6
) tt01
LEFT JOIN media ON media.city = tt01.city
               AND media.date = tt01.last_record_date
LEFT JOIN cities ON cities.city = media.city

...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008018
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ursidoНовичек82,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT
  media.*
  cities.*
FROM (
SELECT
  city,
  COUNT(*) AS city_count,
  MAX(date) AS last_record_date
FROM media 
GROUP BY city
ORDER BY city_count
LIMIT 6
) tt01
LEFT JOIN media ON media.city = tt01.city
               AND media.date = tt01.last_record_date
LEFT JOIN cities ON cities.city = media.city


Здесь есть одна ошибочка, если вдруг окажется что в городе последние 2 фотографии с одной и той же датой, это для города будет 2 записи ,а не 1.
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008028
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новичек82,

Которую из этих двух записей Вы полагаете "более последней"?
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008051
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ursidoНовичек82,

Которую из этих двух записей Вы полагаете "более последней"?
Из каждого города должно быть по 1 одной записи и самой последней.
если в городе есть 2 последние записи с одной и той же даты должна вернутся любая НО ТОЛЬКО одна
авторselect * from media right join (select city,COUNT(1),MAX(date) from media group by city order by COUNT(1) DESC LIMIT 6) as cities on cities.city=media.city and cities.max=media.date;

Я вот сделал базу из 12 записей и везде даты одинаковые, и мне вместо 6, вернуло 9
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008062
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новичек82... любая НО ТОЛЬКО одна ...

Да-да. Такое вот несущественное замечание в постановке задачи.

Для решения этой задачи воспользуйтесь предложением DISTINCN ON .
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008064
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
DISTINCT ON ( expression [, ...] )
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008086
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ursido
Код: plaintext
DISTINCT ON ( expression [, ...] )

DISTINCT с JOIN не работает
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008090
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я ошибся ссылкой, сорри
http://citforum.ru/howto/smart-questions-ru.shtml
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008099
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новичек82DISTINCT с JOIN не работает

ОПА! С этого момента, пожалуйста, подробнее.
Какой у Вас интересный глобус.
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008101
Новичек82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ursidoНовичек82DISTINCT с JOIN не работает

ОПА! С этого момента, пожалуйста, подробнее.
Какой у Вас интересный глобус.
авторselect distinct city,id from (select media.* from media right join (select city,COUNT(1),MAX(date) from media group by city order by COUNT(1) DESC LIMIT 6) as cities on cities.city=media.city and cities.max=media.date) as temp;

не отработает
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008104
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новичек82,

Не. Глобус обыкновенный.

Внимательно читайте мои исходные сообщения (и конкретно: 17895972 -- очень внимательно). Я предлагал совершенно другое. Не то, что Вы приводите в качестве попытки.
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008106
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичек82,
вы заметили, что не привели скрипта DDL,
не привели примерных данных,
и даже не описали задачу нормально?
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008113
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕННовичек82,
вы заметили, что не привели скрипта DDL,
не привели примерных данных,
и даже не описали задачу нормально?

Из всего этого нужен только пункт 3. Да и его можно рассмотреть в малый хрустальный шар. Скуууучно.
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008116
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursido,аццкая лень.
И хрустального шара нет. Пичалько.
...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008124
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT DISTINCT ON (media.city)
  media.id,
  media.city
FROM (
SELECT
  city,
  COUNT(*) AS city_count,
  MAX(date) AS last_record_date
FROM media 
GROUP BY city
ORDER BY city_count
LIMIT 6
) tt01
LEFT JOIN media ON media.city = tt01.city
               AND media.date = tt01.last_record_date

...
Рейтинг: 0 / 0
Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
    #39008125
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ursido
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT DISTINCT ON (media.city)
  media.id,
  media.city
FROM (
SELECT
  city,
  COUNT(*) AS city_count,
  MAX(date) AS last_record_date
FROM media 
GROUP BY city
ORDER BY city_count
LIMIT 6
) tt01
LEFT JOIN media ON media.city = tt01.city
               AND media.date = tt01.last_record_date



Нужно дописать сортировку:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT DISTINCT ON (media.city)
  media.id,
  media.city
FROM (
SELECT
  city,
  COUNT(*) AS city_count,
  MAX(date) AS last_record_date
FROM media 
GROUP BY city
ORDER BY city_count
LIMIT 6
) tt01
LEFT JOIN media ON media.city = tt01.city
               AND media.date = tt01.last_record_date
ORDER BY media.city

...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с выборкой TOP 6 самых популярных записей и последния из каждой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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