我想生成一个新表,根据主键显示另一个表的第一个和最后一个条目。
我有一个表,里面有所有的表 Meter Ids
Jmeter 台
MeterId CostPerUnit
1 1.23
2 4.14
3 5.31
4 13.13
然后我有一个测量表,它每半小时记录一次
测量表
MeterId StartTime NumberOfUnits
1 2002-12-01 00:01:00 25
1 2002-12-01 00:30:00 78
1 2003-09-01 02:30:00 30
1 2008-07-02 01:00:00 15
2 1999-01-01 00:30:00 23
2 2000-03-23 05:03:00 30
2 2008-04-18 18:30:00 25
3 2006-04-03 12:00:00 30
4 2004-04-04 11:30:00 13
4 2008-09-09 15:00:00 15
结果表应如下所示:
MeterId FirstAvailability LastAvailability
1 2002-12-01 2008-07-02
2 1999-01-01 2008-04-18
3 2006-04-03 2006-04-03
4 2004-04-04 2008-09-09
所以:
日期必须是唯一的一天(我想我可以使用 SELECT DISTINCT CAST(StartTime AS DATE)
)
找到第一个和最后一个条目(我想我可以使用 ORDER BY ASC
以及 ORDER BY DESC
为特定的meterid启用,但不确定如何迭代所有的meter id)
注:测量表由1000万行和8000米ID组成。
3条答案
按热度按时间u2nhd7ah1#
简单的最小值/最大值在这里工作。
mzmfm0qo2#
可以使用聚合函数min()max()和group by
r7knjye23#
使用max(),min()