mysql 버전이 낮아서 서브쿼리에 제한이 있습니다.
select count(*) from 테이블 where 1 and wdate like '2022-01%' group by site_code, no
와같은 쿼리를 날렸을떄
아래와 같이 각각 카운팅되는데 제가 원하는것은 이 행에 갯수입니다.
5라는 값이 나왔으면 좋겠는데, 어떻게 쿼리를 만들수있을까요?
| count(*) |
|---|
| 2 |
| 1 |
| 8 |
| 15 |
|
11 |
답변 2개 / 댓글 2개
mysql4버전대에 사용을 하시는군요..
이 버전대에 이게 먹힐지 모르겠지만
순번을 매겨서 마지막 순번을 취하면 원하시는 값을 뽑아내지 않을까 생각합니다.
set @num:=0;
SELECT @num:=@num+1 as rownum,count(*) from 테이블 where 1 and wdate like '2022-01%'
group by site_code, NO ORDER BY rownum desc
답변에 대한 댓글 1개
select count( DISTINCT site_code, no) from 테이블 where 1 and wdate like '2022-01%'
4.0에서 지원할지 잘모르겠네요.
==
https://downloads.mysql.com/docs/refman-4.1-en.a4.pdf
COUNT(DISTINCT ...) [824] was added in MySQL 3.23.2.
가능하네요.
답변에 대한 댓글 1개
저도 distinct 찾아보고 아차 싶었습니다...
진작 해볼껄하고..
추후 작업시 해보겠습니다.
감사합니다.
답변을 작성하려면 로그인이 필요합니다.
생각보다 구현이 잘 안되서.. php 조합으로 그냥 표현했습니다.
$totalRecord = 0;
for($i=0; $i<$crow=mysql_fetch_row($cresult); $i++){
$totalRecord++;
}
그냥 for문에서 갯수를 다 더하는식으로 했는데, 개인적으로 sql은 sql로 끝내자는 마인드가
있어서, 추후에 더 좋은 방법있으면 댓글로 남겨보겠습니다.
4.0 버전 msyql 이라 답답합니다. ㅎㅎ
다시한번 답변 감사합니다.