2017-04-11 14 views
2

この解決策を見つけたのはhereですが、max()関数を結果に追加して、最大visitnumberだけが報告されるようにする必要があります行番号行番号を追加する - max() - BigQueryを使用する

これは私のクエリは、現在どのように見えるかで、

SELECT 
row_number() over() row_number, 
fullvisitorID, 
visitnumber, 
FROM (
SELECT fullvisitorID, visitnumber, 
FROM [data] 
GROUP BY fullvisitorID,visitnumber 
ORDER BY visitnumber DESC 
) 

MAX()関数ありがたく感謝を導入する方法上の任意の助けを降順でfullvisitorID。

Current result: 
Row row_number fullvisitorID visitnumber 
1 1 7798230386693640077 15187  
2 2 7798230386693640077 15186  
3 3 7798230386693640077 15185  
4 4 6990057712104307809 15133  
5 5 1693270353484553172 12519  
6 6 1693270353484553172 12518 

Desired result: 
Row row_number fullvisitorID visitnumber 
1 1 7798230386693640077 15187  
2 2 6990057712104307809 15133 
3 3 1693270353484553172 12519 
4 4 2117072763989389740 11607 
5 5 2336272987018271381 10487  
6 6 1563891584913132229 9927 
+0

結果と欲望の結果を表示できますか? –

答えて

0

SELECT 
    ROW_NUMBER() OVER(ORDER BY visitnumber DESC) rownumber, 
    fullvisitorID, 
    visitnumber 
FROM (
    SELECT 
    ROW_NUMBER() OVER(PARTITION BY fullvisitorID ORDER BY visitnumber DESC) pos, 
    fullvisitorID, 
    visitnumber, 
    FROM (
    SELECT fullvisitorID, visitnumber, 
    FROM [data] 
    GROUP BY fullvisitorID,visitnumber 
) 
) 
WHERE pos = 1 
-- ORDER BY visitnumber DESC 
1

下に試しこの試し:行番号を取得する前に、各fullVisitorIdの最大visitNumberを計算するためにサブクエリを使用する、すなわち

SELECT 
    row_number() over() row_number, 
    fullvisitorID, 
    maxVisitNumber  
FROM (
     SELECT fullvisitorID, max(visitnumber) as maxVisitnumber, 
     FROM [data] 
     GROUP BY fullvisitorID 
     ORDER BY maxVisitnumber DESC 
) 

を。

関連する問題