source

필드 수가 1개보다 큰 경우 선택

manysource 2022. 10. 25. 17:55

필드 수가 1개보다 큰 경우 선택

나는 다음과 같은 것을 하고 싶다.

SELECT * 
  FROM db.table 
 WHERE COUNT(someField) > 1

MySql에서는 어떻게 하면 좋을까요?

를 사용합니다.HAVING,것은 아니다.WHERE절, 집계 결과를 비교합니다.

쿼리를 액면 그대로 받아들이기:

SELECT * 
  FROM db.table 
HAVING COUNT(someField) > 1

이상적으로는,GROUP BY적절한 평가를 위해 정의된HAVING절이지만 MySQL은 GROUP BY의 숨겨진 열을 허용합니다...

이것은 에 대한 독특한 제약에 대비하기 위한 것인가?someField그래야만 할 것 같은데...

여기 있습니다.

SELECT Field1, COUNT(Field1)
  FROM Table1 
 GROUP BY Field1
HAVING COUNT(Field1) > 1
ORDER BY Field1 desc
SELECT username, numb from(
Select username, count(username) as numb from customers GROUP BY username ) as my_table
WHERE numb > 3

이 조작은, 셀프 조인에서도 실행할 수 있습니다.

SELECT t1.* FROM db.table t1
JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk

편도

SELECT t1.* 
FROM db.table t1
WHERE exists 
      (SELECT *
      FROM db.table t2 
      where t1.pk != t2.pk 
      and t1.someField = t2.someField)

SQL의 두 표 사이에 Group By에 대한 예를 제시하겠습니다.

Select cn.name,ct.name,count(ct.id) totalcity from city ct left join country cn on ct.countryid = cn.id Group By cn.name,ct.name Having totalcity > 2


저는 그냥 그룹이 없는 게 공허한 결과였어요.그래서 나는 그 진술서를 위해 그룹을 구성하는 것이 꽤 중요하다고 생각한다.

OMG Pornes가 말했듯이, having 조항은 당신이 원하는 것입니다.그러나 요약 대신 개별 행을 얻기를 원하는 경우("갖는"에 의해 요약이 생성됨) 단일 문으로 수행할 수 없습니다.이 경우 두 개의 문을 사용해야 합니다.

가지고 있지 않다

SELECT COL,TOTAL
FROM (SELECT SPORT, COUNT(COL) AS TOTAL FROM db.table GROUP BY SPORT)
WHERE TOTAL > 100 ORDER BY TOTAL 

또는 HADING과 함께

SELECT COL, COUNT(COL) AS TOTAL
FROM db.table
GROUP BY SPORT HAVING TOTAL > 100
ORDER BY COL

또한 "pk"가 키 필드여야 합니다.셀프조인

SELECT t1.* FROM db.table t1
JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk 

빌 카윈이 당신에게 복제한 모든 기록을 주길 원했어요2개 이상의 레코드가 있는 경우도 있기 때문에 같은 레코드를 여러 번 얻을 수 있습니다.키 필드 억제에 의해 동일한 레코드를 삭제하기 위해 동일한 필드를 가진 다른 테이블에 모두 썼습니다.나는 노력했다.

SELECT * FROM db.table HAVING COUNT(someField) > 1

위의 첫 번째.여기서 반환되는 데이터는 중복되는 데이터 중 1개만 제공되며, 중복되는 데이터의 1/2 미만이 제공되지만 원하는 데이터만 제공되면 카운트는 양호합니다.

언급URL : https://stackoverflow.com/questions/3710483/select-where-count-of-one-field-is-greater-than-one