하나의 쿼리문으로 컬럼내 모든값의 개수를 count 채택완료
Copy
SELECT `xm_buy`, COUNT(*) FROM g5_write_off where `xm_no` < '11' GROUP BY `xm_buy`;
SELECT `xm_buy`, COUNT(*) FROM g5_write_off where `xm_no` < '21' GROUP BY `xm_buy`
SELECT `xm_buy`, COUNT(*) FROM g5_write_off where `xm_no` < '31' GROUP BY `xm_buy`
위와 같이 xm_no 이하 조건으로 해서 ..컬럼내 모든 값을 카운트 합니다.
쿼리문을 하나로 만들지 못해서..저렇게 3개를 작성해서 짜다보니..
위 3개의 쿼리를 하나의 쿼리로 만들수 있을까 해서요..
부탁드립니다.
답변 2개
채택된 답변
+20 포인트
5년 전
범위를 정하신느것 같은데
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`< '21'
union all
SELECT `xm_buy30` type , COUNT(*) cnt FROM g5_write_off where `xm_no` > '20 and `xm_no` < '31'
";
와 같이 작성하시면 gorup by 가 필요없을것 같네요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
5년 전
댓글을 작성하려면 로그인이 필요합니다.
5년 전
쿼리를 3개를 돌리시나 1개를 복잡하게 돌리시나
결과상의 시간 차이는 없으실겁니다.
위의 방식도 문제가 되지않을듯하니
직관적으로 쉽게 코드를 볼수있도록 위에서 사용한 방식도 나쁘지않으십니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
위 주소에 있는것을 응용하려고 하는거라서요.
즉, 해당컬럼내 내용별 갯수를 모두 가져오려고 합니다.
기본 SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명;
이 부분에서 where 조건을 넣은거구요. 각 조건에 맞는값을 개별 쿼리로 구현되는데...
하나의 쿼리로 묶을수 없을까 해서요..