1

招待IDベースのデータを照会する必要があります。各招待 ID について、上位 5 つの ID と ID の説明が必要です。

私が書いたクエリは、世界中でフェッチするのに常に時間がかかっていることがわかりました。エラーや問題に気づきませんでした。

コードは次のとおりです。

SELECT count(distinct ID),
  IDdesc,
  inviteid,
  A
FROM (
  SELECT
    ID,
    IDdesc,
    inviteid,
    RANK() OVER(order by  invtypeid asc ) A
  FROM Fact_s
    --WHERE dateid ='26012013'
  GROUP BY invteid,IDdesc,ID
  ORDER BY invteid,IDdesc,ID
) B
WHERE A <=5
GROUP BY A, IDDESC, inviteid
ORDER BY A
4

1 に答える 1

1

あなたの要件を完全に理解したかどうかはわかりませんが、ウィンドウ関数を使用しているためgroup by、派生テーブルの は必要ありません (order byマークが述べたように)。

row_number()そして、おそらくそこにいる代わりに欲しいでしょうrank()

の結果を外側のクエリに含めることもrank()疑わしいようです。

したがって、これは次のステートメントにつながります。

SELECT count(distinct ID),
       IDdesc,
       inviteid
FROM (
  SELECT ID,
         IDdesc,
         inviteid,
         row_number() OVER (order by invtypeid asc ) as rn
  FROM Fact_s
) B
WHERE rn <= 5
GROUP BY IDDESC, inviteid;
于 2013-02-12T10:57:49.787 に答える