2014-02-11 74 views
0

我有以下表的MySQL:查询用于过滤列后获得最大价值

+------------+-------+------------+-----------+ 
| date  | time | custom_id | Number | 
+------------+-------+------------+-----------+ 
| 01/02/2014 | 01:00 | ABC123  | 15  | 
| 01/06/2014 | 02:00 | ABC123  | 11  | 
| 01/06/2014 | 00:00 | ABC123  | 17  | 
| 01/06/2014 | 01:00 | HEY567  | 28  | 
| 01/07/2014 | 01:00 | ABC123  | 17  | 
| 01/08/2014 | 00:00 | HEY567  | 28  | 
| 01/09/2014 | 14:00 | ABC123  | 17  | 
| 01/10/2014 | 22:00 | HEY567  | 28  | 
| 01/10/2014 | 23:00 | ABC123  | 17  | 
| 01/12/2014 | 18:30 | HEY567  | 28  | 
+------------+-------+------------+-----------+ 

如何我:

  1. 选择2014年1月6日日期范围从时间开始00:00 UNTIL 01/10/2014 at 23:00

  2. 顺序MAXMIN列名为每天

  3. 排序也基于该custom_id表列数

我会喜欢它最终看起来类似于:

+------------+-------+------------+-----------+ 
| date  | time | custom_id | Number | 
+------------+-------+------------+-----------+ 
| 01/06/2014 | 01:00 | HEY567  | 28  | 
| 01/06/2014 | 00:00 | ABC123  | 17  | 
| 01/06/2014 | 02:00 | ABC123  | 11  | 
| 01/07/2014 | 01:00 | ABC123  | 17  | 
| 01/08/2014 | 00:00 | HEY567  | 28  | 
| 01/09/2014 | 14:00 | ABC123  | 17  | 
| 01/10/2014 | 22:00 | HEY567  | 28  | 
| 01/10/2014 | 23:00 | ABC123  | 17  | 
+------------+-------+------------+-----------+ 

我该如何用MySQL Query来完成这项工作?

在此先感谢

SQLFiddle与查询我没有更早:http://sqlfiddle.com/#!2/3d2b9/1

回答

1

我真的该custom_id不知道,如果你的列“时间”的数据,如'23:30' ,这可能工作:

SELECT date, time, custom_id, Number 
FROM traffic 
WHERE CONCAT(date, " ", time) BETWEEN "01/06/2014 00:00" AND "01/10/2014 23:00" 
ORDER BY date, CAST(Number as SIGNED) DESC, custom_id 

按照CONCAT合并“日期”和“时间”。

http://sqlfiddle.com/#!2/f57b7/8

+0

非常感谢,我如何修改你的脚本,以便我保持最大值* *每天**每个** custom_id ** – user3288852

+0

您的意思是每个custom_id每天的MAX号码? –

+0

是每个custom_id的MAX号码,每天。有点难以解释:-)非常感谢您的帮助。你认为这是可能的吗? – user3288852

1

这里是一个MySQL查询,将查找日期2014年1月6日和2014年1月10日再下订单之间由按降序排列数列,按升序

SELECT date, MIN(time) as time, custom_id, SUM(Number) as numbersum 
FROM traffic 
WHERE time between "00:00" and "23:00" and date between "01/06/2014" and "01/10/2014" 
GROUP BY date, custom_id, HOUR(time) 
ORDER BY numbersum desc, custom_id 
+0

它不需要。他说这是在0:00到23:00之间,这是整个一天...... soo – SyntaxLAMP

+0

但我会包括那 – SyntaxLAMP