我正在尝试获取每天消耗的卡路里的最大值。我不知道如何获取查询结果,我想象每个日期只有 1 行,其中一列包含每天的总卡路里值。
旁边带有红色星号的值是我每天想要的值。
with meals_in_day as
(
select *,
row_number() over (partition by meal_date order by meal_name ) as meals_through_day,
sum(calories) over (partition by meal_date order by meal_name ) as incremental_calories
from calories_data
)
select *
from meals_in_day;
我到目前为止已经汇总了每天膳食分配的卡路里,但我被困在这里了。希望有人能够帮助我达到我想要的查询结果。
提前致谢!
要获取最大值(即当天的总量),您可以使用子查询来选择每天的最大增量卡路里。
WITH meals_in_day AS (
SELECT
meal_date,
SUM(calories) OVER (PARTITION BY meal_date ORDER BY meal_name) AS incremental_calories
FROM calories_data
)
SELECT
meal_date,
MAX(incremental_calories) AS total_calories
FROM meals_in_day
GROUP BY meal_date;