SQL Server에서 이것은 사용자가 요구하는대로 수행 할 수 있지만 실제로는 사용자가 요구하는 것이 아니라고 생각합니다.
CREATE TABLE Artists(Artist_ID INT, Artist_Name VARCHAR(100), Artist_Genre VARCHAR(20))
INSERT INTO Artists VALUES
(1,'A','Classic')
,(2,'B','Classic')
,(2,'B','Pop')
,(3,'C','Pop')
SELECT a.Artist_Name [Artist 1]
,b.Artist_Name [Artist 2]
,a.Artist_Genre [Shared Genre]
FROM Artists a
INNER JOIN
Artists b ON a.Artist_Genre = b.Artist_Genre
WHERE a.Artist_ID < b.Artist_ID
EDIT : 그룹별로 그룹화하고 아티스트 목록을 생성 할 수 있다는 것을 보여줄 가치가 있다고 생각합니다. SQL Server에서는 구문이 엉망이지만 작업이 완료됩니다.
SELECT b.Artist_Genre,
STUFF((SELECT ',' + CAST(Artist_Name AS VARCHAR(MAX))
FROM Artists a
WHERE a.Artist_Genre = b.Artist_Genre
ORDER BY Artist_Name
FOR XML PATH('')),1,1,'') Artist_List
FROM Artists b
GROUP BY b.Artist_Genre
어떤 유형의 데이터베이스 (RDBMS)입니까? –
다른 아티스트가 있다면 3 명이 장르를 공유합니까? 아티스트 3 열을 출력 하시겠습니까? 또는 장르 + 아티스트 클래식의 CSV 목록과 같은 항목으로 정말 더 나아 졌습니까? A, B, D 팝 | B, C –