在android的mediastore數據庫中有一個名爲images的圖表,圖像表有一個名爲timetaken的列,它表示圖像的創建時間,以毫秒爲單位。如何在一個選擇查詢中使用「order by」和「count()」
現在我有我所創造的一天(無時間)要組圖像的需求,並計算每一天的圖片,所以我嘗試此查詢:
選擇datetaken/86400000 * 86400000爲dateT,計數(dateT)作爲imageSumInDate FROM圖像 WHERE(1 = 1) 組由(dateT) ORDER BY dateT DESC
不幸的是,它涉及了一個錯誤:
android.database.sqlite .SQLiteException:沒有這樣的列:dateT(code 1)
然後我問別人的問題,他給一個子查詢風格像下面這樣:
選擇dateT,COUNT(dateT)作爲imageSumInDate 從(選擇datetaken/86400000 * 86400000爲dateT FROM圖像)噸 WHERE(1 = 1) 組由(dateT) ORDER BY dateT DESC
這可能是正確的,但我不能在ContentResolver的的查詢方法使用這個分查詢。 ContentResolver的可能只支持喜歡這種風格的查詢:
select ____ from table where ______ order by____
有什麼訣竅來幫助我適應ContentResolver的的查詢風格?
任何幫助將非常感謝!
謝謝您的回答,但它仍然散發出來的同樣的錯誤:沒有這樣的列:dateT,似乎是dateT co如果我刪除「count(dateT)as imageSumInDate」,它將被正確執行 – AvatarQing
啊。問題是'count()'表達式或'group by'子句,然後,而不是(僅)'order by'。我已經更新了我的答案;請嘗試一下。 – sigpwned
我已經嘗試了所有你的三個答案,都出來了同樣的錯誤。如果刪除「count(dateT)as imageSumInDate」,並使用「SELECT datetaken/86400000 * 86400000作爲dateT FROM圖像WHERE(1 = 1)group by(dateT)ORDER BY dateT DESC」,它將正確運行。看起來在帶有別名的「count()」的範圍中存在一些問題。 – AvatarQing