2016-07-13 2 views
0

У меня есть эта таблица:Как запрашивать определенные строки в день и для каждого пользователя?

user | date 
1 | 2016-08-10 
1 | 2016-09-10 
1 | 2016-10-10 
2 | 2016-08-15 
2 | 2016-08-18 
2 | 2016-08-19 

То, что я хочу сделать здесь, чтобы получить конкретный пользователь для каждой даты. Например, я хочу получить пользователей, где дата> = 2016-08-12. Мой ожидаемый результат будет:

user | date 
1 | 2016-09-10 
2 | 2016-08-15 

Я хотел бы отметить, что эти даты фактическая даты и разные пользователи имеют разные даты с ними, таким образом, в этом примере, значение date2 для двух пользователей будет отличаться.

Может ли кто-нибудь помочь мне сформулировать правильный запрос для этого?

Спасибо

+0

Нужны действительные данные, чтобы понять их полностью. В противном случае возникло бы много вопросов, например: 'Date3 меньше даты2? ... ' – 1000111

+0

@ 1000111 обновил вопрос – hungrykoala

+0

Скажите, пожалуйста, почему другие даты, которые больше, чем' 2016-08-12', не появились на выходе – 1000111

ответ

1

Вы можете попробовать этот запрос.

SELECT 
T.user, 
MIN(T.date) AS min_date 
FROM your_table T 
WHERE T.date >= '2016-08-12' 
GROUP BY T.user; 

SQL FIDDLE DEMO

Примечание: Этот запрос выбирает первую дату, которая больше, чем дата ввода для каждого пользователя.

0

попробовать этот

SELECT * FROM table WHERE date > '2016-08-12 00:00:00' 

с ограничением, что date столбец будет объявлен как Date типа

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