mysql使用group_mysql使用GROUP BY查询结果

我有一张表格用于导出到CSV的数据。理想情况下,我想切换行和列,以便数据分组更好一些。

进一步解释,目前,数据库看起来像这样..

data_id data_timestamp data_value

--------------------------------------------

1 2011-07-07 00:01:00 0.400

1 2011-07-07 00:02:00 0.500

1 2011-07-07 00:03:00 0.600

1 2011-07-07 00:04:00 0.700

2 2011-07-07 00:01:00 0.100

2 2011-07-07 00:02:00 0.200

2 2011-07-07 00:03:00 0.250

2 2011-07-07 00:04:00 2.300我想要做的是按data_timestamp值对data_value进行分组,以便对时间戳进行分组,并将每个data_id的每个data_value显示在列中而不是一行中。

data_timestamp input_1 input_2

--------------------------------------------

2011-07-07 00:01:00 0.400 0.100

2011-07-07 00:02:00 0.500 0.200

2011-07-07 00:03:00 0.600 0.250

2011-07-07 00:04:00 0.700 2.300以下是我正在使用的查询...

SELECT d.data_timestamp, d.input_1, d.input_2

FROM (

SELECT data_timestamp,

IF(data_id=1,data_value,NULL) AS 'input_1',

IF(data_id=2,data_value,NULL) AS 'input_2' FROM data

) AS d ORDER BY data_timestamp ASC但它不是我想要的,因为当一个data_id没有值时,现在有NULL值。 GROUP BY似乎也将data_value分组,这不是我想要的。

有什么建议么?

编辑:

我已经尝试在外部查询中使用WHERE d.input_1 IS NOT NULL,但无法完全得到结果..

在WHERE之前...

data_timestamp input_1 input_2

--------------------------------------------

2011-07-07 00:01:00 0.400 NULL

2011-07-07 00:01:00 NULL 0.100

2011-07-07 00:02:00 0.500 NULL

2011-07-07 00:02:00 NULL 0.200

2011-07-07 00:03:00 0.600 NULL

2011-07-07 00:03:00 NULL 0.250

2011-07-07 00:04:00 0.700 NULL

2011-07-07 00:04:00 NULL 2.300添加WHERE d.input_1 IS NOT NULL将删除input_2值..

data_timestamp input_1 input_2

--------------------------------------------

2011-07-07 00:01:00 0.400 NULL

2011-07-07 00:02:00 0.500 NULL

2011-07-07 00:03:00 0.600 NULL

2011-07-07 00:04:00 0.700 NULL而且,实际上,我有大约20个ID来分组,所以不会是最好的想法或者全部都是。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值