SQL:使用分组

时间:2015-09-16 14:46:50

标签: sql oracle

我很难通过此查询获得正确的结果:

select max(kts.my_date),  kts.name
join ktt on ktt.someId = kts.someOtherId
where ktt.someId = 'example' 
group by kts.name;

我有两个(可能是愚蠢的)问题:

  1. 这个max()会花些时间吗?如果日期相同,我知道订单会这样做。 max会做同样的事吗?

  2. 这与我之前的问题有关,但是当我运行上面的查询时,如果日期相同,则按名称对其进行排序。我希望最新的日期在顶部。我是否需要在日期中订购一个order by子句?如果是这样,使用Max是毫无意义的,对吧?

  3. 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  1. 是的,
  2. --2 select max(kts.my_date) over (partition by kts.name) as maxdate, kts.name from -- chose your table join ktt on ktt.someId = kts.someOtherId where ktt.someId = 'example' order by --chose here your column

    尝试一下