gpt4 book ai didi

sql - 从多个表中使用 MAX 和 SUM 进行 SELECT

转载 作者:行者123 更新时间:2023-11-29 14:57:18 27 4
gpt4 key购买 nike

我有 3 张 table :

  • weather_data(每小时日期,下雨)
  • weather_data_calculated(每小时日期、计算值)
  • weather_data_daily(每日日期、每日值)

我想使用此选择从这 3 个表中获取每日值列表:

SELECT daily_date, daily_value, SUM(rain), MAX(calc_value)

SUM 和 MAX 需要在一天中的所有时间进行。

这就是我所做的:

SELECT
date_format(convert_tz(daily_date, 'GMT', 'America/Los_Angeles'), '%Y-%m-%d 00:00:00') as daily_date_gmt,
daily_value,
SUM(rain),
MAX(calc_value)
FROM weather_data_daily wdd, weather_data wd, weather_data_calculated wdc
WHERE daily_date_gmt=date_format(convert_tz(wd.hourly_date, 'GMT', 'America/Los_Angeles'), '%Y-%m-%d 00:00:00')
and daily_date_gmt=date_format(convert_tz(wdc.hourly_date, 'GMT', 'America/Los_Angeles'), '%Y-%m-%d 00:00:00')
group by daily_date_gmt
order by daily_date_gmt;

这不起作用,因为我不知道在这种情况下如何处理分组。

我也尝试使用临时表,但也没有成功。

感谢您的帮助!

最佳答案

在分组依据中包含 daily_value,或者使用两个查询。一个将包含日期列和两个聚合,另一个将包含日期列和每日值。然后,您可以使用单个外部查询在日期列上连接这些结果集。

编辑:您在评论中说,在组中包含 daily_value 意味着查询未完成。这是因为(可能)您的查询包含的所有表之间没有连接条件。这将导致可能非常大的结果集,并且需要很长时间。我不介意帮助解决实际的 SQL,但您需要更新您的问题,以便我们可以看到哪些字段来自哪些表。

关于sql - 从多个表中使用 MAX 和 SUM 进行 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4284992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com