получить только одно значение для customer_ID, где несколько строк, где - PullRequest
0 голосов
/ 20 марта 2020

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

SELECT payments.customer_id,
       payments.reason,
       payments.date
FROM payments  
WHERE reason like '%error%' 
ORDER BY payments.date DESC

Это сообщение об ошибке, которое я получаю, если пытаюсь использовать сгруппировать по

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'reason' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (errno 1055) (sqlstate 42000)

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Вам нужно ниже -

SELECT p.customer_id,
       p.reason,
       MAX(p.date) max_date
FROM payments p
WHERE p.reason like '%error%' 
GROUP BY p.customer_id,
         p.reason
ORDER BY max_date DESC
0 голосов
/ 20 марта 2020
SELECT DISTINCT payments.customer_id, 
                payments.reason,
                payments.date FROM payments
WHERE reason like '%error%' 
ORDER BY payments.date DESC

DISTINCT решит это за вас

...