MYSQL 에서 요일별 데이터추출 관련 질문입니다.

MYSQL 에서 요일별 데이터추출 관련 질문입니다.

QA

MYSQL 에서 요일별 데이터추출 관련 질문입니다.

본문


SELECT CASE DAYOFWEEK(regdate_date)
                    WHEN 1 THEN "일"
                    WHEN 2 THEN "월"
                    WHEN 3 THEN "화"
                    WHEN 4 THEN "수"
                    WHEN 5 THEN "목"
                    WHEN 6 THEN "금"
                    WHEN 7 THEN "토"
                    END AS DateRange,
                    count(seq) AS Total
                    from v_visit
                    where date_format(regdate_date,"%Y%-%m%-%d")
                    GROUP BY DAYOFWEEK(regdate_date)

 

홈페이지 접속통계를 요일별로 나누기 위해서 MYSQL 에서 위 코드로 요일별 추출해서  GROUP BY로 묶어서 사용하려고 합니다.

 

다만 위의 코드는 문법에러가 나는데요. 검색해보니 CASE는 스위치문 안에서만 사용되어야된다고 하는데 어떻게 수정해야하나요;?

 

문법에러는 Parse error: syntax error, unexpected 'CASE' (T_CASE) in your code on line 1 입니다.

이 질문에 댓글 쓰기 :

답변 2

올려주신 쿼리를

그누보드의 g5_visit 테이블로 대입해서

 

쿼리의 컬럼만 변경해서 조회해보니 잘됩니다.


SELECT 
    CASE DAYOFWEEK(vi_date)
      WHEN 1 THEN "일"
      WHEN 2 THEN "월"
      WHEN 3 THEN "화"
      WHEN 4 THEN "수"
      WHEN 5 THEN "목"
      WHEN 6 THEN "금"
      WHEN 7 THEN "토"
      END AS DateRange,
      count(vi_id) AS Total
FROM g5_visit
WHERE date_format(vi_date,"%Y%-%m%-%d")
GROUP BY DAYOFWEEK(vi_date)
 

수행결과

980996605_1679297175.9032.png

 

HeidiSql에서 수행해본것이구요

혹시라도 오류가 나오면

" 따옴표를 

' 단일따옴표

로 변경해보세요

 


SELECT 
    CASE DAYOFWEEK(vi_date)
      WHEN 1 THEN '일'
      WHEN 2 THEN '월'
      WHEN 3 THEN '화'
      WHEN 4 THEN '수'
      WHEN 5 THEN '목'
      WHEN 6 THEN '금'
      WHEN 7 THEN '토'
      END AS DateRange,
      count(vi_id) AS Total
FROM g5_visit
WHERE date_format(vi_date,"%Y%-%m%-%d")
GROUP BY DAYOFWEEK(vi_date)

답변 감사드립니다.
저도 DB에서 직접 질의하면 값은 잘 뽑아져나오는데 php페이지 안에 넣어 사용하고자 하니 오류가나네요 ㅎ;
혹시 php버전문제일수도 있을까요? 현재버전은  7.2.16버전입니다.

하단의 date_format에서 오류가 나네요
다음과같이 하니까 정상적으로 잘 조회됩니다.



$sql = "SELECT 
    CASE DAYOFWEEK(vi_date)
      WHEN 1 THEN '일'
      WHEN 2 THEN '월'
      WHEN 3 THEN '화'
      WHEN 4 THEN '수'
      WHEN 5 THEN '목'
      WHEN 6 THEN '금'
      WHEN 7 THEN '토'
      END AS DateRange,
      count(vi_id) AS Total
FROM g5_visit
WHERE date_format(vi_date,'%Y%-%m%-%d')
GROUP BY DAYOFWEEK(vi_date)
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
   echo $row['DateRange']." | ".$row['Total']."<BR>";
}

SELECT CASE DAYOFWEEK(regdate_date) WHEN 1 THEN "일" WHEN 2 THEN "월" WHEN 3 THEN "화" WHEN 4 THEN "수" WHEN 5 THEN "목" WHEN 6 THEN "금" WHEN 7 THEN "토" END AS DateRange, COUNT(seq) AS Total FROM v_visit  GROUP BY DAYOFWEEK(regdate_date)

에러내용이 무엇인가요. 따옴표 확인해보세요.
$sql = " SELECT
        CASE DAYOFWEEK(regdate_date)
            WHEN 1 THEN '일'
            WHEN 2 THEN '월'
            WHEN 3 THEN '화'
            WHEN 4 THEN '수'
            WHEN 5 THEN '목'
            WHEN 6 THEN '금'
            WHEN 7 THEN '토'
        END AS DateRange,
        COUNT(seq) AS Total
    FROM v_visit
    WHERE DATE_FORMAT(regdate_date,'%Y-%m-%d')
    GROUP BY DAYOFWEEK(regdate_date) ";

답변을 작성하시기 전에 로그인 해주세요.
전체 126,500 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT