Added grouping queries

This commit is contained in:
2017-04-11 11:22:46 +02:00
parent edb556ef50
commit ad57141dcd
5 changed files with 151 additions and 5 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -31,7 +31,7 @@ var DataService = (function () {
}
DataService.prototype.get = function (id) {
var lineChartData$ = this.http
.get((this.getUrl + "/" + id), { headers: this.getHeaders() })
.get((this.getUrl + "/" + id + "/group/hour"), { headers: this.getHeaders() })
.map(mapData);
return lineChartData$;
};
+1 -1
View File
File diff suppressed because one or more lines are too long
+147 -1
View File
@@ -27,6 +27,152 @@ router.get('/device', function(req, res){
});
router.get('/data/:device/group/:group/:year1-:month1-:day1/:year2-:month2-:day2', function(req, res) {
let devid = req.params.device;
let group = req.params.group;
let groupdiv = 1;
switch(group)
{
case 'y':
case 'year':
groupdiv = 3214080;
break;
case 'm':
case 'month':
groupdiv = 267840;
break;
case 'd':
case 'day':
groupdiv = 8640;
break;
case 'h':
case 'hour':
groupdiv = 360;
break;
case 'min':
case 'minute':
groupdiv = 6;
break;
default:
break;
}
//Date 1
let day1 = req.params.day1;
let month1 = req.params.month1;
let year1 = req.params.year1;
let date1 = year1 + "-" + month1 + "-" + day1 + " 00:00:00";
//Date 2
let day2 = req.params.day2;
let month2 = req.params.month2;
let year2 = req.params.year2;
let date2 = year2 + "-" + month2 + "-" + day2 + " 23:59:59";
connection.query(
'SELECT MIN(grp.`time`), AVG(grp.`HOV`) as HOV, AVG(grp.`HTV`) as HTV FROM (SELECT @i:=@i+1 AS `rownum`, FLOOR(@i/?) AS `datagrp`, `time`, `HOV`, `HTV` FROM `measurement` WHERE `device` = ? AND `time` >= ? AND `time` <= ? ORDER BY `time` DESC ) grp GROUP BY `datagrp`', [groupdiv, devid, date1, date2],
function (error, results, fields) {
if (error) throw error;
if (results.length > 0) {
res.status(200);
res.send(JSON.stringify(results));
}
});
});
router.get('/data/:device/:year1-:month1-:day1/:year2-:month2-:day2', function(req, res) {
let devid = req.params.device;
//Date 1
let day1 = req.params.day1;
let month1 = req.params.month1;
let year1 = req.params.year1;
let date1 = year1 + "-" + month1 + "-" + day1 + " 00:00:00";
//Date 2
let day2 = req.params.day2;
let month2 = req.params.month2;
let year2 = req.params.year2;
let date2 = year2 + "-" + month2 + "-" + day2 + " 23:59:59";
connection.query(
'SELECT s.* FROM ( SELECT TOE1, TOE2, TTE1, TTE2, HOV, HTV, HT, time FROM measurement WHERE device = ? AND `time` >= ? AND `time` <= ? ORDER BY time DESC ) s ORDER BY s.time ASC', [devid, date1, date2],
function (error, results, fields) {
if (error) throw error;
if (results.length > 0) {
res.status(200);
res.send(JSON.stringify(results));
}
});
});
router.get('/data/:device/group/:group', function(req, res) {
let devid = req.params.device;
let group = req.params.group;
let groupdiv = 1;
switch(group)
{
case 'y':
case 'year':
groupdiv = 3214080;
break;
case 'm':
case 'month':
groupdiv = 267840;
break;
case 'd':
case 'day':
groupdiv = 8640;
break;
case 'h':
case 'hour':
groupdiv = 360;
break;
case 'min':
case 'minute':
groupdiv = 6;
break;
default:
break;
}
connection.query(
'SELECT MIN(grp.`time`), AVG(grp.`HOV`) as HOV, AVG(grp.`HTV`) as HTV FROM (SELECT @i:=@i+1 AS `rownum`, FLOOR(@i/?) AS `datagrp`, `time`, `HOV`, `HTV` FROM `measurement` WHERE `device` = ? ORDER BY `time` DESC ) grp GROUP BY `datagrp`', [groupdiv, devid],
function (error, results, fields) {
if (error) throw error;
if (results.length > 0) {
res.status(200);
res.send(JSON.stringify(results));
}
});
});
router.get('/data/:device', function(req, res) {
let devid = req.params.device;
@@ -52,7 +198,7 @@ router.get('/usage/:device', function(req, res) {
let devid = req.params.device;
connection.query(
'SELECT HOV, HTV, HT FROM measurement WHERE device = ? ORDER BY time DESC LIMIT 0,1', [devid],
'SELECT TOE1, TOE2, TTE1, TTE2, HOV, HTV, HT, tarief1, tarief2 FROM measurement, device WHERE measurement.device = device.SN AND measurement.device = ? ORDER BY time DESC LIMIT 0,1', [devid],
function (error, results, fields) {
if (error) throw error;
+1 -1
View File
@@ -22,7 +22,7 @@ export class DataService {
get(id:string): Observable<GraphData> {
let lineChartData$ =
this.http
.get((`${this.getUrl}/${id}`)
.get((`${this.getUrl}/${id}/group/hour`)
, {headers: this.getHeaders()})
.map(mapData);