說我有一個簡單的表,有3個字段:'地點','用戶'和'字節'。比方說,在某個過濾器下,我想按'地點'分組,併爲每個「地點」合計該地點的所有字節,並隨機選擇該地點的用戶(統一來自所有符合'where'過濾器和相關'地點')。如果有一個「隨機選擇」聚合函數,我會這樣做:SQL隨機聚合
SELECT place, SUM(bytes), SELECT_AT_RANDOM(user) WHERE .... GROUP BY place;
...但我找不到這樣一個聚合函數。我錯過了什麼嗎?什麼可能是一個很好的方法來實現這一目標?
這是什麼RDBMS? –
我不知道任何具有這種功能的個人RDBMS。大多數需要使用一些其他機制來實現相同的結果*(例如爲每個用戶分配一個隨機數,然後選擇具有最高值的用戶)。*但每個都有不同的功能,並且每個功能的表現都不相同。所以,這確實是一個RDBMS特定的問題。 – MatBailie
如果您使用的是MySQL,只需編寫一個不正確的「GROUP BY」(例如,不要在用戶上應用聚合),它將隨機選擇一行。 –