2012-09-03 98 views
0

什麼是實現這樣的查詢(不工作)的正確方法?最大和最小日期之間的sqlite計數數據

SELECT Min(mydates_col) as oldest, Max(mydates_col) as newest, 
COUNT(oneparticular_column) FROM mytable WHERE mydates_col BETWEEN oldest AND newest 

我知道我能做到這一點使用連續的2個查詢,取最小值和最大值從第一查詢日期,然後使用放入系統的數字運行第二個查詢,但我相信有一個更好的解決方案,經過十幾次嘗試後未發現。

Thx。

+0

你不是檢索除了在這種情況下,空行的所有行? – Resh32

+0

因此,您可以從mytable中執行select count(*),其中mydates_col不爲null – Resh32

+0

是的,用NOT NULL條件替換日期範圍可能是一個解決方案,但我仍然害怕意外的結果。我真的想把重點放在最小/最大日期範圍之間。因爲我也需要其他東西。 – hornetbzz

回答

1

使用內部查詢,不是很漂亮(見我的意見),但如果您需要:

SELECT COUNT(oneparticular_column) FROM mytable WHERE mydates_col BETWEEN (SELECT Min(mydates_col) FROM mytable) AND (SELECT Max(mydates_col) FROM mytable) 
+0

順便說一下,檢查查詢在運行時是否得到優化,否則計算可能會很慢。 – Resh32

+0

很棒的工作,完全符合我奮鬥的目標,許多thx :-) – hornetbzz

+0

不客氣。確保你的日期還有索引來加速這種類型的查詢。 – Resh32

相關問題