我有这张桌子:
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)并且正是我想要得到的!
有人可以帮助我吗?
答案 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