我有一张这样的桌子
id color shade date
--- ---- ----- -----
1 red dark 01/01/1990
2 red light 09/16/2013
3 green light 08/15/2010
4 green dark 09/18/2012
5 maroon dark 08/20/2013
6 white dark 08/31/2013
7 white light 08/30/2012
8 purple light 08/20/2010
我想要最新日期的每种颜色的条目。所以我试着做:
select id, color, shade, max(date) from mytable;
这不起作用并给了我错误:
is invalid in the select list because it is not contained in either an aggregate
function or the GROUP BY clause.
好的,所以我Group By
按照错误的建议将其添加到
select id, color, shade, max(date) from mutable
Group by id, color, shade
这给了我想要的结果。
问题
现在,我希望只对某些颜色重复上述相同的查询。例如,我只想看到红色和绿色的。
所以我做了:
select id, color, shade, max(date) from mutable
Where color in ('red', 'green')
Group by id, color, shade;
但是,这并没有给我正确数量的结果,因为我猜它们是按shade
.
获取我想要的结果的最佳方法是什么?基本上我想max date
从同一事物的两个实例中取出,并且在表格之外只想要某些颜色。