次の表のSQLテーブル(SparkSQL)があります。SparkSQLで都市ごとに上位10項目を選択
user_id, city, timestamp, item_id
私は与えられたそれぞれの日付に(時間数の面でのitem_idは、その都市に登場)指定された都市の上位10項目を見つける必要があります。
私はその後、次のでした:それはRNで並べ替えるのに
SELECT *
FROM (
SELECT *,
row_number() OVER partition BY city AS rn
FROM mytable) AS foo
ORDER BY rn DESC
しかし、それはちょうど私に与えられた日付のトップ10の要素を与えませんでした。これを修正する適切な方法は何でしょうか?ありがとう!
'を計算'と 'それぞれの与えられたdate'にあなたが街でパーティションなければならないことを意味し、日付(1日はより多くを持っている可能性が必要です1タイムスタンプ?)。 「トップ10」とは、トップオーダー10点を得るために何か**を注文する必要があることを意味します。 **何か**あなたが注文したいものは何ですか? –
トランザクションレコードであると仮定すると、item_1は1000回出現し、item_2は950回出現する可能性があります。私はそれがその都市のために各項目が現れる回数によって順序付けされてほしいです。私。それぞれの都市について、ベスト10のベストセラー商品を表示したいと思います。 – Edamame