2015-11-18 4 views
1

У меня есть следующая таблица для хранения данных Instagram теперь я хочу найти все записи, которые являются самыми большими.MYSQL Как найти все записи, которые являются самыми большими

Table: instagrammer_recent_statistic 

id instagram_id comments_count likes_count created_date 
---- ------------ -------------- ----------- ------------ 
8900 481959735  19    92   2015-11-18 09:46:15 
8899 481959735  10    25   2015-11-18 09:46:14 
8898 481959735  25    57   2015-11-18 09:46:13 
8997 481959735  35    74   2015-11-17 09:46:15 
8896 481959735  09    49   2015-11-17 09:46:14 
8895 481959735  48    16   2015-11-17 09:46:13 
8994 481959735  44    42   2015-11-16 09:46:15 
8893 481959735  13    17   2015-11-16 09:46:14 
8892 481959735  53    34   2015-11-16 09:46:13 

И я хочу, чтобы получить последние записи даты, которые:

id instagram_id comments_count likes_count created_date 
---- ------------ -------------- ----------- ------------ 
8900 481959735  19    92   2015-11-18 09:46:15 
8899 481959735  10    25   2015-11-18 09:46:14 
8898 481959735  25    57   2015-11-18 09:46:13 

Я попытался с этим запросом, но не работает должным образом и получить все результаты :(

SELECT * 
FROM instagrammer_recent_statistic 
WHERE instagram_id = '481959735' AND 
    created_date IN (
     SELECT MAX(created_date) 
     FROM instagrammer_recent_statistic 
     GROUP BY created_date 
    ) 
ORDER BY id DESC; 
+1

отсутствует 'WHERE instagram_id =«481959735'' в вашем внутреннем SQL, и может удалить группу с помощью – amdixon

+0

я добавил и выполнения запроса, но не работает :( –

+0

г Happy, я добавил SQL Fiddle к моему ответу и запрос, кажется, работает правильно. –

ответ

2

Ваш оригинальный query сравнивает каждую отметку времени created_date с максимальной меткой времени. Это будет верно только для записи, которая по совпадению имеет максимальную временную метку. В моем запросе ниже я вместо этого сравниваю t он день каждого created_date против день от максимальной отметки времени.

SELECT * 
FROM instagrammer_recent_statistic 
WHERE instagram_id = '481959735' AND 
    DAY(created_date) = (
     SELECT DAY(MAX(created_date)) FROM instagrammer_recent_statistic 
    ) 
ORDER BY id DESC; 

Нажмите приведенную ниже ссылку для демонстрационной версии этого запроса, используя ваши данные образца.

SQLFiddle

+1

Спасибо за вашу отличную поддержку :) –

Смежные вопросы