Почему мой запрос минимальной агрегатной функции получает нулевые значения и как я могу это исправить? - PullRequest
0 голосов
/ 29 января 2019

Я использую этот код, чтобы попытаться найти первую дату покупки для базы данных с информацией о заказе / клиенте.Я использовал min (paid_at) для извлечения этой информации в прошлом, но способ настройки этой конкретной таблицы допускает нулевые значения в столбце paid_at.Я знаю, что, как правило, агрегатные функции, такие как min (), не считают нули, но по какой-то причине моя - и я хочу вместо этого просто извлечь самую раннюю записанную дату paid_at.

Я пытался использовать WHERE paid_at IS NOT NULL, но он по-прежнему имеет нулевые значения.Причина, по которой таблица имеет так много нулевых значений для paid_at, заключается в том, что она считает каждый проданный товар отдельной строкой, причем первый элемент в заказе содержит всю информацию, а следующие строки имеют нулевые значения для всей информации о заказе, за исключением того, что элементявляется.

SELECT email, max(billing_name) as billing_name, sum(total), max(paid_at) AS recent_purchase, min(paid_at) AS first_purchase FROM order_info2
WHERE paid_at IS NOT NULL
GROUP BY email
...