我在德魯伊中使用掃描查詢。我正在尋找一種使用某些查詢對資料進行排序的方法。我怎么能做到這一點?
我現在有:
DataSource: Data,
Intervals: "1000"/"2000",
Limit: 10
Legacy: true,
我有列“值”,我想按此列(不按時間戳)對資料進行排序,并從表中回傳每一列,但按“值”排序。
就像是:
SELECT __time, value, company, count
FROM shares
ORDER BY 1 ASC
WHERE value > 200
uj5u.com熱心網友回復:
用維基百科測驗資料嘗試了類似的查詢:
SELECT namespace, channel, cityName, sum_added
FROM "wikipedia_demo" r
WHERE sum_added > 30
ORDER BY sum_added DESC
這導致錯誤:
Error: Unknown exception
Cannot build plan for query: SELECT namespace, channel, cityName, sum_added FROM "wikipedia_demo" r WHERE sum_added > 30 ORDER BY sum_added DESC
org.apache.druid.java.util.common.ISE
原因是 ORDER BY 只允許在 GROUP BY 列、聚合運算式上使用,或者如果沒有進行分組,則只允許在 __time 上使用。看看這里的檔案:https : //druid.apache.org/docs/latest/querying/sql.html#order-by
如果您不聚合,您仍然可以使用 GROUP BY 選擇所有 SELECT 運算式,然后使用 ORDER BY 其中任何一個,如下所示:
SELECT namespace, channel, cityName, sum_added
FROM "wikipedia_demo" r
WHERE sum_added > 30
GROUP BY 1,2,3,4
ORDER BY sum_added DESC
注意:由于是時間序列資料,最好在 __time 上包含條件以避免掃描整個表。
uj5u.com熱心網友回復:
另請參閱以下檔案頁面,了解有關scan查詢順序的選項。
https://druid.apache.org/docs/latest/querying/scan-query.html#time-ordering
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/377358.html
下一篇:MongoDb2.6歸檔問題
