[SQL] 고유 값을 계산
SQL고유 값을 계산
나는 그들이 예를 들어 얼마나 많은 애완 동물을 고객이 요구하는 데이터 세트가 있습니다. 나는 고유 한 값을 (1,2,3, 등) 믿을 수있는 하나 개의 쿼리있는 방법이 있나요? 감사!
+----------+------+
| Customer | Pets |
+----------+------+
| 20 | 2 |
| 21 | 3 |
| 22 | 3 |
| 23 | 2 |
| 24 | 4 |
+----------+------+
내가 원하는 말을 목록입니다 :
해결법
-
==============================
1.다음과 같이 별개의 수를 할 수 있습니다 :
다음과 같이 별개의 수를 할 수 있습니다 :
SELECT COUNT(DISTINCT column_name) FROM table_name;
편집하다:
질문에 대한 귀하의 설명 및 업데이트에 따라, 나는 우리가 원래 생각했던 것보다 상당히 다른 문제가 있다고 지금 참조하십시오. "DISTINCT"SQL에서 특별한 의미가있다. 내가 제대로 이해한다면, 당신은 이런 식으로 뭔가를 원하는 :
지금 당신은 아마 하위 쿼리를 사용하려는거야 :
select COUNT(*) column_name FROM (SELECT DISTINCT column_name);
이것이 당신이 찾고있는 매우 무엇을하지 않은 경우 알려줘.
-
==============================
2.좋아, 마침내 willlangford 찾고 있었던되지 무엇 때문에 나는 내 이전 대답을 삭제,하지만 난 어쩌면 우리는 모든 질문을 오해했다 나의 강조했다.
좋아, 마침내 willlangford 찾고 있었던되지 무엇 때문에 나는 내 이전 대답을 삭제,하지만 난 어쩌면 우리는 모든 질문을 오해했다 나의 강조했다.
나는 또한 처음에는 SELECT DISTINCT ... 일이 생각하지만, 누군가 필요로 많은 사람들이 나머지 부분보다 애완 동물의 다른 수 있었다 방법을 알고 나에게 너무 이상한 듯 ... 그게 전부는 그게 아마 문제라고 생각하는 이유 충분히 명확하지.
그래서, 진짜 문제의 의미를 명확히 지금이 자사 상당한 오버 헤드를 하위 쿼리를 만드는, 내가 바람직 GROUP BY 절을 사용합니다.
이 같은 테이블 customer_pets이 상상 :
+-----------------------+ | customer | pets | +------------+----------+ | customer1 | 2 | | customer2 | 3 | | customer3 | 2 | | customer4 | 2 | | customer5 | 3 | | customer6 | 4 | +------------+----------+
그때
SELECT count(customer) AS num_customers, pets FROM customer_pets GROUP BY pets
반환 :
+----------------------------+ | num_customers | pets | +-----------------+----------+ | 3 | 2 | | 2 | 3 | | 1 | 4 | +-----------------+----------+
당신이 필요로하는.
-
==============================
3.나는이 링크가 꽤 좋은 생각합니다.
나는이 링크가 꽤 좋은 생각합니다.
링크에서 샘플 출력 :
mysql> SELECT cate_id,COUNT(DISTINCT(pub_lang)), ROUND(AVG(no_page),2) -> FROM book_mast -> GROUP BY cate_id; +---------+---------------------------+-----------------------+ | cate_id | COUNT(DISTINCT(pub_lang)) | ROUND(AVG(no_page),2) | +---------+---------------------------+-----------------------+ | CA001 | 2 | 264.33 | | CA002 | 1 | 433.33 | | CA003 | 2 | 256.67 | | CA004 | 3 | 246.67 | | CA005 | 3 | 245.75 | +---------+---------------------------+-----------------------+ 5 rows in set (0.00 sec)
-
==============================
4.당신은이를 사용할 수 있습니다 :
당신은이를 사용할 수 있습니다 :
select count(customer) as count, pets from table group by pets
-
==============================
5.
SELECT CUSTOMER, COUNT(*) as PETS FROM table_name GROUP BY CUSTOMER;
from https://stackoverflow.com/questions/4688814/count-distinct-values by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL 서버의 버전이 컴퓨터에서 실행 무엇을 알 수 있습니까? (0) | 2020.07.22 |
---|---|
[SQL] java.sql의 날짜 시간 동등한? (A java.sql.datetime가?) (0) | 2020.07.22 |
[SQL] 어떻게 필드가 null 또는 빈 MySQL의 경우 확인? (0) | 2020.07.22 |
[SQL] JSON 문자열을 저장하기위한 최적의 SQL 데이터 타입은 무엇입니까? (0) | 2020.07.22 |
[SQL] MySQL을 SQL 서버에 해당 지금의 ()? (0) | 2020.07.22 |