169 похожих чатов

Добрый вечер. Прошу помочь с тестовым. https://sqlize.online/s/CH тут отработал код

.Задача У вас SQL база с таблицами магазина, который существует много лет:
1) Users(userId, age)
2) Purchases (purchaseId, userId, itemId, date)
3) Items (itemId, price).

Напишите SQL запросы для расчета следующих метрик: Б) в каком месяце года выручка от пользователей в возрастном диапазоне 35+ самая большая . Работодатель предупреждает стоит оставить ремарку, что ChatGPT только решает это задание с логическими ошибками и покрывает далеко не все возможные кейсы. В чем подвох? я так добавила что Для учета того, что один и тот же userId может совершать несколько покупок в месяц, нужно сгруппировать покупки по месяцам и пользователям, а затем выбрать месяц с наибольшей выручкой. Что то еще? Помогите пожалуйста. МОЙ КОД: SELECT year, month, MAX(monthly_revenue) AS max_revenue
FROM (
SELECT
YEAR(P.date) AS year,
MONTH(P.date) AS month,
U.userId,
SUM(I.price) AS monthly_revenue
FROM Purchases P
JOIN Users U ON P.userId = U.userId
JOIN Items I ON P.itemId = I.itemId
WHERE (YEAR(CURRENT_DATE) - YEAR(U.date_of_birth)) >= 35
GROUP BY YEAR(P.date), MONTH(P.date), U.userId
) AS UserMonthlyPurchases
GROUP BY year, month
ORDER BY max_revenue DESC
LIMIT 1;

1 ответов

28 просмотров

Попробуй что-то вроде такого: select   date_part('month', p."date")::int as "MonthNumber" from   Purchases p   join Users u on u.userid = p.userid   join items i on i.itemid = p.itemid where   date_part('year', p."date") = 2023 -- где год 2023   and (p."date"::timestamp - u.date_of_birth::timestamp) >= interval '35 years' -- и на момент покупки было 35+ лет group by   date_part('month', p."date")::int -- группируем по номеру месяца, чтобы посчитать сумму покупок по месяцам order by   sum(i.price) desc -- сортируем по убыванию сумму покупок за месяц limit 1; -- выбираем верхнюю строку с номером месяца с самыми большими тратами

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта