「Oracle」GROUP BYとHAVINGでデータの重複件数を抽出する方法

■ 書式
SELECT
xxx
FROM
テーブル名
GROUP BY
xxx
HAVING
条件
■ 使用例
説明
スキーマ SCHEMA_CFT
テーブル:TEST_TABLE1、TEST_TABLE2
等しいカラム:DEV_NO
グループ化カラム:USER_ID
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
CFTA.USER_ID 重複USER_ID
, COUNT(CFTA.USER_ID) 重複件数
FROM
SCHEMA_CFT.TEST_TABLE1 CFTA
, SCHEMA_CFT.TEST_TABLE2 CFTB
WHERE
CFTA.DEV_NO = CFTB.DEV_NO(+)
HAVING
COUNT(CFTA.USER_ID) > 1
GROUP BY
CFTA.USER_ID
SELECT CFTA.USER_ID 重複USER_ID , COUNT(CFTA.USER_ID) 重複件数 FROM SCHEMA_CFT.TEST_TABLE1 CFTA , SCHEMA_CFT.TEST_TABLE2 CFTB WHERE CFTA.DEV_NO = CFTB.DEV_NO(+) HAVING COUNT(CFTA.USER_ID) > 1 GROUP BY CFTA.USER_ID
SELECT
  CFTA.USER_ID 重複USER_ID
  , COUNT(CFTA.USER_ID) 重複件数 
FROM
  SCHEMA_CFT.TEST_TABLE1 CFTA
  , SCHEMA_CFT.TEST_TABLE2 CFTB 
WHERE
  CFTA.DEV_NO = CFTB.DEV_NO(+) 
HAVING
  COUNT(CFTA.USER_ID) > 1 
GROUP BY
  CFTA.USER_ID

■ 実行結果
重複USER_ID 重複件数
2015     12
1235     3
6788     16

Oracle

Posted by arkgame