[SQL] 하나 개의 필드의 개수가 1보다 클 경우 선택
SQL하나 개의 필드의 개수가 1보다 클 경우 선택
나는 이런 일을하고 싶지 :
SELECT *
FROM db.table
WHERE COUNT(someField) > 1
어떻게 MySQL의에서 이것을 달성 할 수 있습니까?
해결법
-
==============================
1.사용을 HAVING하지 WHERE 절 집계 결과 비교.
사용을 HAVING하지 WHERE 절 집계 결과 비교.
액면 쿼리를 촬영 :
SELECT * FROM db.table HAVING COUNT(someField) > 1
이상적으로,이 HAVING 절에서 적절한 가치 평가에 대해 정의하여 그룹해야하지만, MySQL은 GROUP BY에서 숨겨진 열을 허용 않습니다 ...
이 someField에 고유 제한 조건에 대한 준비인가? 그것처럼 보인다는해야 ...
-
==============================
2.
SELECT username, numb from( Select username, count(username) as numb from customers GROUP BY username ) as my_table WHERE numb > 3
-
==============================
3.당신은 또한이 작업을 수행 할 수 있습니다 자체 조인 :
당신은 또한이 작업을 수행 할 수 있습니다 자체 조인 :
SELECT t1.* FROM db.table t1 JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk
-
==============================
4.여기 가서 :
여기 가서 :
SELECT Field1, COUNT(Field1) FROM Table1 GROUP BY Field1 HAVING COUNT(Field1) > 1 ORDER BY Field1 desc
-
==============================
5.일방 통행
일방 통행
SELECT t1.* FROM db.table t1 WHERE exists (SELECT * FROM db.table t2 where t1.pk != t2.pk and t1.someField = t2.someField)
-
==============================
6.OMG 조랑말이 언급 한 바와 같이, HAVING 절은 후 무엇이다. 당신이 대신 요약의 개별 행을 얻을 것이라고 기대했다 그러나합니다 (이 "필요"에 대한 요약을 생성) - 그것은 하나의 명령문에서 수행 할 수 없습니다. 당신은이 경우에 두 개의 문을 사용해야합니다.
OMG 조랑말이 언급 한 바와 같이, HAVING 절은 후 무엇이다. 당신이 대신 요약의 개별 행을 얻을 것이라고 기대했다 그러나합니다 (이 "필요"에 대한 요약을 생성) - 그것은 하나의 명령문에서 수행 할 수 없습니다. 당신은이 경우에 두 개의 문을 사용해야합니다.
-
==============================
7.나는 SQL에서 두 테이블 사이의 그룹에 의해 예를 들어 위로를 줄 :
나는 SQL에서 두 테이블 사이의 그룹에 의해 예를 들어 위로를 줄 :
선택 cn.name, ct.name, 수 (ct.id) totalcity 도시 CT에서 ct.countryid = cn.id에 국가 CN 가입 왼쪽 그룹으로 cn.name, ct.name 데 totalcity> 2
-
==============================
8.나를 위해, 단지 반환 빈 결과에 의한기를 갖는 것은 아닙니다. 내가 가진 문에 의한기를 갖는 같아요 그래서 꽤 중요하다
나를 위해, 단지 반환 빈 결과에 의한기를 갖는 것은 아닙니다. 내가 가진 문에 의한기를 갖는 같아요 그래서 꽤 중요하다
-
==============================
9.또한 "PK"는 키 필드해야한다고 언급한다. 자기는 조인
또한 "PK"는 키 필드해야한다고 언급한다. 자기는 조인
SELECT t1.* FROM db.table t1 JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk
빌 Karwin에 의해 당신에게 내가 원하는 무엇인가하는 중복 모든 레코드를 제공합니다. 일부는 더이보다 가지고 있기 때문에, 당신은 두 번 이상 같은 기록을 얻을 수 있습니다. 나는 키 필드 억제하여 동일한 기록을 없애 같은 필드를 다른 테이블에 모두를 썼다. 나는 시도
db.table HAVING COUNT FROM SELECT * (someField)> (1)
상기 제. 그것에서 반환 된 데이터는 중복의 한 줄, 더 적은이 당신을 제공하지만, 당신이 원하는 모든 경우 카운트가 선한 일의 1/2 이상.
from https://stackoverflow.com/questions/3710483/select-where-count-of-one-field-is-greater-than-one by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 디버그 동안 SSIS 변수를보고 (0) | 2020.07.24 |
---|---|
[SQL] MySQL은 : 지금 대 CURDATE () () (0) | 2020.07.24 |
[SQL] 어떻게 SQL Server에서 문자열을 자릅니다? (0) | 2020.07.23 |
[SQL] 나는 정렬을 이해하지? (MySQL은, RDBMS 문자 세트) (0) | 2020.07.23 |
[SQL] 어떻게 쿼리를 실행하기 위해 R 스크립트 내로 .SQL 파일의 내용을 읽어? (0) | 2020.07.23 |