1
我有一個表是這樣的:獲取每週最多日期的記錄表中的
date | data
-----------------
1/1/2017 | a
-----------------
1/2/2017 | b
-----------------
1/3/2017 | c
-----------------
1/7/2017 | d
-----------------
...
-----------------
2/2/2017 | a
-----------------
2/2/2017 | b
-----------------
我需要獲得最大的日期數據爲表每週可。日期可以多次提交,某些日期可能會丟失,並且幾周可能不會在七天內添加。
第一,可能是想到的最簡單的方法是這樣的:
select maxdate, data from (
select max(date) as maxdate from mytable group by DATEPART(wk, date)
) t1, maytable
where mytable.date = t1.date
但有人告訴我,有沒有使用max函數更好的解決方案。這甚至可能嗎?上面有沒有更好的方法?
這是一個假設性問題,上述查詢可能不是100%正確的,因爲我沒有測試過它。
感謝的人,爲什麼沒有這個,我想起?順便說一句,比使用聚合函數更好的性能嗎? – Lamar
@Lamar我真的不知道它是否會表現更好,您將不得不測試每個數據。雖然我相信這將執行單個索引掃描,而不是您的其他查詢的兩個索引掃描(或索引掃描+索引查找)(因爲您在[日期]上使用函數,所以您將無法使用索引查找在[日期] max()查詢)...但我真的不能確定沒有看到兩者的執行計劃。 – SqlZim
反正謝謝你。 – Lamar