반응형
단일 개별 열을 기준으로 고유한 행 선택
다음 행이 있는 행을 선택하고 싶다.distinct email
다음 표의 예를 참조하십시오.
+----+---------+-------------------+-------------+
| id | title | email | commentname |
+----+---------+-------------------+-------------+
| 3 | test | rob@hotmail.com | rob |
| 4 | i agree | rob@hotmail.com | rob |
| 5 | its ok | rob@hotmail.com | rob |
| 6 | hey | rob@hotmail.com | rob |
| 7 | nice! | simon@hotmail.com | simon |
| 8 | yeah | john@hotmail.com | john |
+----+---------+-------------------+-------------+
바람직한 결과는 다음과 같습니다.
+----+-------+-------------------+-------------+
| id | title | email | commentname |
+----+-------+-------------------+-------------+
| 3 | test | rob@hotmail.com | rob |
| 7 | nice! | simon@hotmail.com | simon |
| 8 | yeah | john@hotmail.com | john |
+----+-------+-------------------+-------------+
내가 상관하지 않는 곳id
컬럼 값이 반환됩니다.필요한 SQL은 무엇입니까?
TSQL에서의 빠른 1개
SELECT a.*
FROM emails a
INNER JOIN
(SELECT email,
MIN(id) as id
FROM emails
GROUP BY email
) AS b
ON a.email = b.email
AND a.id = b.id;
어떤 행이 사용되든 상관 없다는 말씀이시겠죠title
,id
,그리고.commentname
값(모든 행에 대해 "rob"이 있지만 실제로 데이터 모델에서 적용되는지 여부를 알 수 없습니다).이 경우 창 기능을 사용하여 지정된 전자 메일 주소의 첫 번째 행을 반환할 수 있습니다.
select
id,
title,
email,
commentname
from
(
select
*,
row_number() over (partition by email order by id) as RowNbr
from YourTable
) source
where RowNbr = 1
MySql 5.7 이상을 사용하는 경우, 이러한 링크(MySql Official, SO QA)에 따라 1개당 1개의 레코드를 선택할 수 있습니다.group by
집약 기능이 필요 없습니다.
이를 통해 쿼리를 단순화할 수 있습니다.
select * from comments_table group by commentname;
여기서 실행 중인 쿼리를 사용해 보십시오.
SQL 쿼리를 단순화하기 위해 각 이메일에 대해 MAX ID를 사용합니다.
;WITH ue(id)
AS
(
SELECT MAX(id)
FROM table
GROUP BY email
)
SELECT * FROM table t
INNER JOIN ue ON ue.id = t.id
이메일에서 *를 선택합니다.
언급URL : https://stackoverflow.com/questions/8273987/select-unique-rows-based-on-single-distinct-column
반응형
'programing' 카테고리의 다른 글
테이블 값 함수(TVF)와보다 (0) | 2023.04.20 |
---|---|
SQL에서 문 삭제가 매우 느립니다. (0) | 2023.04.20 |
Git 및 고약한 "오류: 기존 정보/참조를 잠글 수 없습니다" (0) | 2023.04.20 |
'pure' Swift에서 약한 프로토콜 참조를 만드는 방법(@objc 없음) (0) | 2023.04.20 |
WPF 도구 모음: 그립 및 오버플로 제거 방법 (0) | 2023.04.20 |