LoginSignup
0
0

More than 1 year has passed since last update.

sqlで、指定カラムで重複があれば値と重複数を表示する

Posted at

データが、
OpenAM
OpenAM
OpenIDM
OpenDJ
OpenDJ
OpenDJ
のようにあるとき、
OpenAM が2個、
OpenDJ が3個、という情報を得たいときのSQLです。
SQL SERVER用のSQLです。

以下のサイトで実験できます。
http://sqlfiddle.com/

スキーマ
CREATE TABLE ForgeRock
([productName] varchar(23), [description] varchar(57))
;

INSERT INTO ForgeRock
([productName], [description])
VALUES
('OpenIDM', 'Platform for building enterprise provisioning solutions'),
('OpenDJ', 'Robust LDAP server for Java'),
('OpenAM', 'Full-featured access management'),
('OpenAM', 'Full-featured access management'),
('OpenDJ', 'Robust LDAP server for Java'),
('OpenDJ', 'Robust LDAP server for Java')
;

SQL:
WITH CTE AS (
SELECT productName, ROW_NUMBER() OVER (PARTITION BY productName ORDER BY productName) AS RowNum
FROM ForgeRock
)
SELECT productName, COUNT() as DuplicateCount
FROM CTE
GROUP BY productName
HAVING COUNT(
) > 1;

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0