Как удалить повторяющиеся данные?

у меня есть проблема с возвратом данных без дубликатов

мне нужно получить com_id с максимальной датой без дубликатов в com_id, и мне нужно показать порядок com_id по t_date

**

не волнует current_season и сезон, это еще одна вещь, мне просто нужно получить com_id максимальной даты без дублирования порядка com_id к t_date

**


Как удалить повторяющиеся данные?

i tried this code but i got a wrong result

SELECT com_id FROM vw_vsa where current_season=season GROUP BY com_id,t_date order by t_date

мой ожидаемый результат

124235623 (1 месяц)
123457 (месяц 1)
1111 (месяц 2 (максимум месяц его группы)
123 (месяц 5 (максимальный месяц его группы)

Каков ожидаемый результат ?

Squirrel 25.05.2019 05:21

просто порядок com id по t_date .. но t_date отдельного com_id должен быть максимальным для его группы

JohnAldi 25.05.2019 05:27

пожалуйста, обновите свой вопрос и покажите ожидаемый результат

Squirrel 25.05.2019 05:29

я обновил помогите если сможете

JohnAldi 25.05.2019 05:48

Глядя на ожидаемый результат, кажется, что вы просто хотели SELECT distinct com_id FROM vw_vsa where current_season=season. Не уверен в значении вашего требования: get com_id of maximum date. Если это имеет значение, пожалуйста, уточните с дополнительным примером

Squirrel 25.05.2019 05:58

послушайте, извините за сложность ... посмотрите на com_id, он дублируется и имеет t_date, мне нужно получить максимальную t_date для каждого отдельного (уникального) com_id, а затем упорядочить результат от min до max с точки зрения t_date

JohnAldi 25.05.2019 06:08

` упорядочить результат от минимального до максимального с точки зрения t_date` с точки зрения t_date или месяца t_date ?

Squirrel 25.05.2019 06:24

на самом деле я сказал от минимума до максимума, и это означает от более старой даты до самой новой даты ... так что не только месяц и день месяца ... я могу дать упр. >> 01.01.2019, затем 01.02.2019, затем 02.02.2019, затем 20.05.2019 (формат месяц/день/год)

JohnAldi 25.05.2019 06:56

то ваш ожидаемый результат вводит в заблуждение. Вы не должны были указывать (month 1) и т. д. И почему 1111 идет после 124235623 ? когда дата 1111 2018, а 124235623 2019?

Squirrel 25.05.2019 07:38
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
9
53
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте использовать DISTINCT at from clasule

SELECT DISTINCT com_id FROM vw_vsa where current_season=season GROUP BY com_id,t_date order by t_date

я получил эту ошибку... Элементы ORDER BY должны появиться в списке выбора, если указан SELECT DISTINCT.

JohnAldi 25.05.2019 05:21

Я думаю, вам нужно сделать это:

SELECT com_id, max(t_date)
FROM vw_vsa
where current_season=season
GROUP BY com_id
order by max(t_date)

хорошо, но даты всех com_id не были упорядочены от минимального до максимального

JohnAldi 25.05.2019 06:00
Ответ принят как подходящий

Судя по вашему описанию, order by должно быть просто max(t_date). Но ожидаемый результат, похоже, вы хотели заказать на основе month

SELECT com_id, max(t_date)
FROM   vw_vsa
where  current_season = season
GROUP BY com_id
order by month(max(t_date))

это правда, но только одна проблема в этот день месяца, я имею в виду, что мне нужно сначала получить 02.02.2019, а затем 01.02.2019

JohnAldi 25.05.2019 07:00

просто измените пункт ORDER BY в соответствии с вашими требованиями

Squirrel 25.05.2019 07:36

спасибо, это сработало, и я сожалею о сложности

JohnAldi 26.05.2019 00:26

Другие вопросы по теме