2026, 새로운 도약을 시작합니다.

하나의 쿼리문으로 컬럼내 모든값의 개수를 count 채택완료

Copy


SELECT `xm_buy`, COUNT(*) FROM g5_write_off where `xm_no` 

위와 같이 xm_no 이하 조건으로 해서 ..컬럼내 모든 값을 카운트 합니다.

쿼리문을 하나로 만들지 못해서..저렇게 3개를 작성해서 짜다보니..

위 3개의 쿼리를 하나의 쿼리로 만들수 있을까 해서요..

부탁드립니다.

답변 2개

채택된 답변
+20 포인트

범위를 정하신느것 같은데

Copy


 

$sql = "

    SELECT `xm_buy10` type, COUNT(*) cnt FROM g5_write_off where `xm_no`  '11' 

    union all 

    SELECT 'xm_buy20' type,  COUNT(*) cnt FROM g5_write_off where `xm_no` > '10 and `xm_no` '20 and  `xm_no`  '31' 

";

와 같이 작성하시면 gorup by 가 필요없을것 같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

https://zetawiki.com/wiki/DB_%EC%A4%91%EB%B3%B5_%EA%B0%9C%EC%88%98_%ED%99%95%EC%9D%B8

위 주소에 있는것을 응용하려고 하는거라서요.
즉, 해당컬럼내 내용별 갯수를 모두 가져오려고 합니다.

기본 SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명;

이 부분에서 where 조건을 넣은거구요. 각 조건에 맞는값을 개별 쿼리로 구현되는데...
하나의 쿼리로 묶을수 없을까 해서요..
제가 올린 쿼리는
1개짜리 입니다.
union all 로 한방에 작동합니다.

댓글을 작성하려면 로그인이 필요합니다.

쿼리를 3개를 돌리시나 1개를 복잡하게 돌리시나

결과상의 시간 차이는 없으실겁니다.

위의 방식도 문제가 되지않을듯하니

직관적으로 쉽게 코드를 볼수있도록 위에서 사용한 방식도 나쁘지않으십니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고