簡體   English   中英

SQL查詢以查找每個不同日期的最大值和最小值

[英]SQL query to find the max and min for each different day

我有下表:

id     value truncated_day just_yyyy_mm_dd
1167    300 7/1/11 0:00  7/1/11
1167    301 7/1/11 0:00 7/1/11
1167    303 7/1/11 0:00 7/1/11
1167    308 7/1/11 0:00 7/1/11
1167    312 7/2/11 0:00 7/2/11
1167    316 7/2/11 0:00 7/2/11
1167    318 7/2/11 0:00 7/2/11
1167    330 7/2/11 0:00 7/2/11
1700    0   7/1/11 0:00 7/1/11
1700    10  7/1/11 0:00 7/1/11
1700    21  7/1/11 0:00 7/1/11
1700    33  7/1/11 0:00 7/1/11
1700    34  7/2/11 0:00 7/2/11
1700    35  7/2/11 0:00 7/2/11
1700    40  7/2/11 0:00 7/2/11

該表實際上很長(超過3200萬行!)。

我想要每天和每個不同的ID的最大值和最小值(read_value)。 我嘗試了以下查詢,但它不起作用:

'$'select id, 
date_trunc('day', timestamp_utc) as truncated_day, 
substring(cast(date_trunc('day', timestamp_utc) as text) from 1 for 10) as just_yyyy_mm_dd,
max(value) as maxvalue,
min(value) as minvalue
from TABLE
order by device_id, truncated_day'$'

我基本上想查詢返回:

id    min    max truncated_day just_yyyy_mm_dd
1167    300 308 7/1/11 0:00 7/1/11
1167    312 330 7/2/11 0:00 7/2/11
1700    0   33  7/1/11 0:00 7/1/11
1700    34  40  7/2/11 0:00 7/2/11

您能幫我這個疑問嗎? 提前非常感謝您! ñ

嘗試這個。 注意添加了GROUP BY。 如果需要,可以重新添加just_yyyy_mm_dd內容。

select id, 
date_trunc('day', timestamp_utc) as truncated_day, 
max(value) as maxvalue,
min(value) as minvalue
from TABLE
GROUP BY id, date_trunc('day', timestamp_utc)
order by device_id, truncated_day

您需要在“排序依據”之前添加“分組依據”。 基本上,您需要按前3個字段分組。

您需要將order by更改為group by 實際上,您可能同時希望:

select device_id, date_trunc('day', timestamp_utc) as truncated_day, 
           substring(cast(date_trunc('day', timestamp_utc) as text) from 1 for 10) as just_yyyy_mm_dd,
           max(value) as maxvalue,
            min(value) as minvalue
from TABLE
group by device_id, date_trunc('day', timestamp_utc)
order by device_id, truncated_day

我很好奇, group by device_id, truncated_day是否可行。 SQL編譯器是否在just_yyyy_mm_dd列上生成錯誤? 不需要產生錯誤,但是可能無法識別該表達式僅在聚合列中。

select id, min(value) as 'minvalue', max(value) as 'maxvalue', truncated_day, just_yy_mm_dd
from the_table
group by truncated_day, id, just_yy_mm_dd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM