Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的一天摘要_Mysql_Sql_Postgresql - Fatal编程技术网

mysql中的一天摘要

mysql中的一天摘要,mysql,sql,postgresql,Mysql,Sql,Postgresql,在创建按日期分组的数据的查询时,我遇到了一些问题。我在stackoverflow中阅读了一些示例,但没有做到这一点。有人能帮我理解怎么做吗?这是我掌握的数据: veiculo_id | data_pacote | hodometro_inicial | hodometro_final | velocidade 1125370 | '2017-11-13 22:53:12-02' | 6673657 | 6673657 | '2

在创建按日期分组的数据的查询时,我遇到了一些问题。我在stackoverflow中阅读了一些示例,但没有做到这一点。有人能帮我理解怎么做吗?这是我掌握的数据:

veiculo_id | data_pacote              | hodometro_inicial | hodometro_final | velocidade

1125370    | '2017-11-13 22:53:12-02' | 6673657           | 6673657         | '20'
1125370    | '2017-11-13 22:53:11-02' | 42526             | 42526           | '35' 
1125370    | '2017-11-13 22:53:09-02' | 2532721           | 2532721         | '47'
1125370    | '2017-11-13 22:53:05-02' | 386358            | 386358          | '0'
1125370    | '2017-11-14 12:53:03-02' | 273085            | 273085          | '45'
1125370    | '2017-11-14 12:53:02-02' | 2004482           | 2004482         | '43'
我需要得到每个veiculo_id(DadtVeoid)的一天摘要,这将是一天中Dadtometro的最大值和最小值,以及当天的平均DadtVelode。结果如下:

veiculo_id | data_pacote   | hodometro_inicial | hodometro_final | velocidade

1125370    | '2017-11-13'  | 6673657           | 42526           | '51'
1125370    | '2017-11-14'  | 2004482           | 273085          | '44'
我现在得到的是:

SELECT dadtveioid AS veiculo_id,
       dadtdt_pacote AS data_pacote, 
       min(dadtodometro) AS hodometro_inicial, 
       max(dadtodometro) AS hodometro_final, 
       sum(dadtvelocidade) AS velocidade 
FROM dados_telemetria  
GROUP BY dadtveioid, dadtdt_pacote 
ORDER BY dadtdt_pacote DESC 

谢谢。

您可以在postgreSQL中尝试以下代码

WITH dados_telemetria AS (
SELECT 1125370::int AS veiculo_id, '2017-11-13 22:53:12-02'::TIMESTAMP AS data_pacote, 6673657::int AS hodometro_inicial, 6673657::int AS hodometro_final,'20'::int AS velocidade
UNION ALL
SELECT 1125370::int AS veiculo_id, '2017-11-13 22:53:11-02'::TIMESTAMP AS data_pacote, 42526::int AS hodometro_inicial,   42526::int AS hodometro_final, '35'::int AS velocidade
UNION ALL
SELECT 1125370::int AS veiculo_id, '2017-11-13 22:53:09-02'::TIMESTAMP AS data_pacote, 2532721::int AS hodometro_inicial, 2532721::int AS hodometro_final,'47'::int AS velocidade
UNION ALL
SELECT 1125370::int AS veiculo_id, '2017-11-13 22:53:05-02'::TIMESTAMP AS data_pacote, 386358::int AS hodometro_inicial,  386358::int AS hodometro_final, '0'::int AS velocidade
UNION ALL
SELECT 1125370::int AS veiculo_id, '2017-11-14 12:53:03-02'::TIMESTAMP AS data_pacote, 273085::int AS hodometro_inicial,  273085::int AS hodometro_final, '45'::int AS velocidade
UNION ALL
SELECT 1125370::int AS veiculo_id, '2017-11-14 12:53:02-02'::TIMESTAMP AS data_pacote, 2004482::int AS hodometro_inicial, 2004482::int AS hodometro_final,'43'::int AS velocidade
)
SELECT veiculo_id,
       DATE(data_pacote) AS data_pacote,
       min(hodometro_inicial) AS min_hodometro_inicial, 
       max(hodometro_inicial) AS max_hodometro_inicial, 
       min(hodometro_final) AS min_hodometro_final, 
       max(hodometro_final) AS max_hodometro_final, 
       sum(velocidade) AS velocidade 
FROM 
    dados_telemetria  
GROUP BY 
    veiculo_id,
    DATE(data_pacote)
ORDER BY data_pacote DESC 
您将得到以下结果

veiculo_id data_pacote min_hodometro_inicial max_hodometro_inicial min_hodometro_final max_hodometro_final velocidade 
---------- ----------- --------------------- --------------------- ------------------- ------------------- ---------- 
1125370    2017-11-13  42526                 6673657               42526               6673657             102        
1125370    2017-11-14  273085                2004482               273085              2004482             88         

按DadtVeoid、日期(Dadtdtt_pacote)和日期(Dadtdtt_pacote)使用分组作为数据。谢谢@BerndBuffen,它起作用了。我以前试过,但没用,我想我错过了什么。