我的问题:
我有一个Channel <int>
表和Value <float>
柱,用时间戳和与附加数据的其他几个栏目的沿。 Channel
要么是1
要么是2
,并且有1或2行除了通道和值都相同外,其他都有。整蛊SQL SELECT语句 - 将两个排为两列
我想要做的是将这些数据选择到一个新的窗体中,其中两个通道显示为列。我试图用GROUP BY
做些什么,但我无法弄清楚如何根据同一行上的通道将值取入正确的列。
例子:
对于那些你宁可看我的数据,我想从那里弄明白的数据,在这儿呢。我有什么:
Channel Value Timestamp OtherStuff
1 0.2394 2010-07-09 13:00:00 'some other stuff'
2 1.2348 2010-07-09 13:00:00 'some other stuff'
1 24.2348 2010-07-09 12:58:00 'some other stuff'
2 16.3728 2010-07-09 12:58:00 'some other stuff'
1 12.284 2010-07-09 13:00:00 'unrelated things'
2 9.6147 2010-07-09 13:00:00 'unrelated things'
我想要什么:
Value1 Value2 Timestamp OtherStuff
0.2394 1.2348 2010-07-09 13:00:00 'some other stuff'
24.2348 16.3728 2010-07-09 12:58:00 'some other stuff'
12.284 9.6147 2010-07-09 13:00:00 'unrelated things'
更新响应已在评论arised一些问题,以及一些后续的问题/澄清:
是的,它是
Timestamp
和012的组合将两行连接在一起的。 (OtherStuff
实际上不止一列,但为简洁起见我简化了。)还有一些其他列不一定相同,但应保持原样。所讨论的表已经从两个表,其中
Value
,Channel
和Timestamp
来自它们中的一个接合,其余的(共7个柱,出其中4总是相等为“链接”行,其他三个大多不是)。有几个建议使用INNER JOIN
- 如果我已经加入了东西(即使我没有myTable
加入自己),这些建议是否仍然有效?还有很多的行具有相同的时间戳,所以我需要来自两个表的信息,我加入找出哪些行链接在一起。
我有很多数据。输入来自遍布全国各地的测量设备,其中大多数(如果不是全部的话)每2分钟上传测量值(最多4个通道)。目前我们有大约1000台在线设备,所以这意味着每分钟平均增加大约1000行。我需要考虑的值至少为3,最好是6小时,这意味着表中有180 000到360 000行,包括通道,值和时间戳。
什么链接2行?时间戳和其他东西? – gbn 2010-07-09 12:38:02
刚刚问了一个问题,就是这个:)! – Baaju 2010-07-09 13:32:05