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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
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)

답변감사합니다.
알려주신 코드도 동일하게 오류가 나네요 ㅎ; 제가 위에 올려둔 코드로 PMA 에서 직접 SQL 구문 넣으면 값은 잘 추출되는데 sql구문으로 넣으면 오류가나네요;

에러내용이 무엇인가요. 따옴표 확인해보세요.
$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) ";

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
filter #html ×
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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