:
SELECT t.CU_NO, t.LOC_NO, t.NUMBEROCC
FROM (
SELECT CU_NO, LOC_NO, COUNT(LOC_NO) OVER (PARTITION BY CU_NO) AS NUMBEROCC
FROM MYTABLE
) AS t
WHERE t.NUMBEROCC > 1
あなたはすべての場所を気にしない場合は、しかし、単に顧客IDは、あなたは句によって、単純なグループを使用することができます。
SELECT CU_NO
FROM MYTABLE
GROUP BY CU_NO
HAVING COUNT(DISTINCT LOC_NO) > 1
しかし、どちらの場合も、あなたはCU_NOによって、ないLOC_NOによってグループ化したいです!
SQL Serverのウィンドウ機能の実装にはまだCOUNT(DISTINCT x) OVER(PARTITION BY x)
が含まれていません。だから、これは発生させますエラー:
SELECT x.CU_NO, x.LOC_NO, x.NUMBEROCC
FROM (
SELECT t.CU_NO, t.LOC_NO
, MAX(DR) OVER(PARTITION BY CU_NO) AS NUMBEROCC
FROM (
SELECT CU_NO, LOC_NO
, DENSE_RANK() OVER (PARTITION BY CU_NO ORDER BY LOC_NO) AS DR
FROM MYTABLE
) AS t
) AS x
WHERE x.NUMBEROCC > 1
ありがとうYpercubeとPetar – icecurtain