可以通过两列分组?

时间:2014-06-10 20:02:33

标签: sql

我有这张桌子:

ID       Price   Time
0        20,00    20/10/10
1        20,00    20/10/10
2        20,00    12/12/10
3        14,00    23/01/12
4        87,00    30/07/14
4        20,00    30/07/14

我使用这种语法sql以不会重复值的方式获取所有价格的列表:

SELECT * FROM myTable WHERE id in (select min(id) from %@ group by Price)

此代码返回值(20,14,87,20)

但在这种情况下,我会实施另一项检查,不仅按价格排序,还按日期排序,例如:该语法按价格获取列表,如果我找到按日期检查的方法,代码将返回我是值(20,20,14,87,20)

他重复 20 两次,但如果我们在表格中看到我们有三个数字 20 (两个日期为20/10/10,另一个日期为12 / 12/10)并且正是我想要得到的!

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

要按多列分组,只需在列表之间加上逗号。

SELECT price FROM myTable group by price, time order by time

该组通过查看列出的列值的所有不同组合,并丢弃重复项。您还可以使用sum或max等聚合函数将其他列添加到结果中。

答案 1 :(得分:1)

只要您需要的是价格/时间组合,以下内容应该有效。如果您需要包含ID,事情会变得更复杂:

SELECT `Price` FROM items
GROUP BY `Price`, `Time`
ORDER BY `Time`;

以下是行动结果的小提琴:http://sqlfiddle.com/#!2/40821/1