【发布时间】:2018-03-08 17:53:35
【问题描述】:
我有这张表,里面有一些示例数据。
CREATE TABLE IF NOT EXISTS ooscount (
id int(10) NOT NULL AUTO_INCREMENT,
agcid int(3) NOT NULL,
ooscount int(10) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=246045 ;
--
-- Dumping data for table 'ooscount'
--
INSERT INTO `ooscount` (`id`, `agcid`, `ooscount`, `date`) VALUES
(209855, 4, 2869, '2018-03-01 18:00:02'),
(209856, 2, 3183, '2018-03-01 18:00:02'),
(209857, 1, 4906, '2018-03-01 18:00:02'),
(209860, 3, 5596, '2018-03-01 18:00:02'),
(209863, 14, 6019, '2018-03-01 18:00:02'),
(209864, 16, 7564, '2018-03-01 18:00:02'),
(209873, 4, 2870, '2018-03-01 18:05:01'),
(209874, 2, 3182, '2018-03-01 18:05:01'),
(209876, 1, 4899, '2018-03-01 18:05:01'),
(209877, 3, 5598, '2018-03-01 18:05:01'),
(209879, 14, 6018, '2018-03-01 18:05:01'),
(209882, 16, 7557, '2018-03-01 18:05:01');
我正在为现有数据和新数据设置不同的图表/绘图系统,并希望我不需要将存储方法更改为 MySQL。
我想要的结果是这样的: 第一个数字是 agcid,第二个数字是 ooscount。我每 5 分钟对这些数据进行一次采样,并希望它以 5 分钟的间隔绘制最近 7 小时的数据。
"dataProvider": [
{
"1": 2055,
"2": 3845,
"3": 4455,
"4": 5051,
"14": 9012,
"16": 6522,
"date": "2018-03-08 02:45"
},
{
"1": 2077,
"2": 3841,
"3": 4450,
"4": 5055,
"14": 9033,
"16": 6524,
"date": "2018-03-08 02:50"
},
{
"1": 2076,
"2": 3821,
"3": 4452,
"4": 5057,
"14": 9064,
"16": 6525,
"date": "2018-03-08 02:55"
},
{
"1": 2071,
"2": 3814,
"3": 4460,
"4": 5059,
"14": 9011,
"16": 6521,
"date": "2018-03-08 03:00"
},
{
"1": 2064,
"2": 3832,
"3": 4490,
"4": 5052,
"14": 9013,
"16": 6496,
"date": "2018-03-08 03:05"
},
但我想不出实现这一目标的最佳方法。
从上面的表格中,数据将是 agcid:查询中每个 agcid 的 ooscount(当前为 6 个)
SELECT agcid, ooscount, DATE
FROM ooscount
WHERE agcid
IN ( 1, 2, 3, 4, 14, 16 )
AND DATE >= DATE_SUB( NOW( ) , INTERVAL 7 HOUR )
ORDER BY DATE
LIMIT 0 , 30
使用 AmCharts,目标是在一张图表上绘制这 6 个数据点。
【问题讨论】:
-
ooscount是总和还是最后一条记录?您的查询会返回 6 行吗?困惑 -
这将是设备 agcid 的最后插入计数。 agcid 绑定到具有离线子设备计数(ooscount)的设备。我还意识到此表不需要实际的 ID 列。
-
谢谢,我已经更新了示例数据并澄清了一点。