1) Зачем числа месяца пишешь с ведущим нулём (01, 02, 03).
Доиграишься с таким написанием чисел! Некоторые языки программирования при ведущем нуле считают число в восьмеричном формате! И если для 01 это не критично (оно посчитает его числом - 1), то для 011 это уже будет не 11, а 9! А на 08 и 09 вообще может ошибку выдать.
2) у SQL довольно своеобразный приоритет у and и or (не такой как в 99% языках программирования где они равнозначны), в sql and имеет выше приоритет чем or.
В результате у тебя берёт только первое число первого месяца, или любое число других месяцев. Если в этом не разбираешься - ставь скобки!
В твоём случае
...01
and (EXTRACT...
GIOУченик (206)
8 месяцев назад
Подскажите плиз, что не так в моем запросе? Условие:
1. Ранее мы обращали внимание, что конверсия немного упала в марте. Рассчитайте показатель DAU за март: узнайте количество уникальных покупателей в этом месяце.
Отобразите дату и количество уникальных покупателей. Отсортируйте таблицу по дате в порядке возрастания.
Запрос SQL:
SELECT DATE_TRUNC('day', date),
COUNT(DISTINCT bracelet_id) AS DAU
FROM pizza
WHERE EXTRACT(MONTH FROM date)=3
GROUP BY DATE_TRUNC('day', date)
ORDER BY DATE_TRUNC('day', date) ASC
Отобразите в таблице месяц в виде первой даты и MAU. Отсортируйте таблицу по месяцу в порядке возрастания.Усечь месяц до первой даты можно при помощи DATE_TRUNC.
мой запрос:
SELECT
DATE_TRUNC('month', date),
COUNT(DISTINCT bracelet_id)AS MAU
FROM pizza
WHERE EXTRACT(day FROM date) = 01
and EXTRACT (month from date) = 01
or EXTRACT (month from date) = 02
or EXTRACT (month from date) = 03
GROUP BY DATE_TRUNC('month',date)
ORDER BY DATE_TRUNC('month',date) ASC
Пишет: результат не совпадает с ожидаемым