выберите * из [таблицы], где мин (дата)> определенная дата - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть таблица с клиентами. У каждого клиента есть несколько заказов с оплаченной ценой и днем, когда он / она заказали товар. я хочу, чтобы только клиенты, чей первый заказ был после определенной даты

таблица заказов выглядит следующим образом:

id | customer | item | price | date
--------------------------------------------
1  |    a      |  a2  |   50  | 2018-07-03 
2  |    b      |  a5  |   30  | 2019-12-06
3  |    c      |  a3  |   20  | 2020-01-14
4  |    a      |  a2  |   23  | 2017-07-12
5  |    f      |  a1  |   34  | 2018-10-03
6  |    c      |  a1  |   90  | 2018-03-03
7  |    b      |  a2  |   56  | 2020-02-03
8  |    a      |  a2  |   52  | 2019-05-03

SELECT customer FROM orders WHERE min(date) > TO_DATE('2018-09-01', 'YYYY-MM-DD') 

я хочу, чтобы клиент только тогда, когда первый заказ был после 2018-09-01, мин (дата)> TO_DATE ('2018-09-01', 'ГГГГ-ММ-ДД')

результатом должны быть клиенты: bf

1 Ответ

3 голосов
/ 08 апреля 2020

Использовать агрегацию:

SELECT customer
FROM orders o
GROUP BY customer
HAVING min(date) > DATE '2018-09-01';

Вам не нужно преобразовывать дату в строку для сравнения. В зависимости от вашей базы данных DATE может не потребоваться.

...