[SQL] 여러필드에서 같은값의 갯수를 표현하는 SQL 표현식 문의
본문
항상 도움을 받고만있는 초보입니다.
그누보드를 이용해서 데이터를 수집하고 그 데이터를 가지고 통계치를 작성하는데요
아래와 같은 데이터 필드가 있을때 각 데이터 갯수의 합을 구하고 싶습니다.
도움 부탁드립니다.
데이터
표현하고자하는 양식
여기저기 확인해본내용은 같진 않지만 아래와 내용을 중첩으로 사용하는 형식이었는데요
좀더 간단한 구문이 없을까싶어 문의드립니다..
SELECT SUM(CASE WHEN wr_11 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_12 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_13 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_14 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_15 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_16 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_17 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_18 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_19 = '가' THEN 1 ELSE 0 END
+ CASE WHEN wr_10 = '가' THEN 1 ELSE 0 END
.
.
+ CASE WHEN wr_51 = '가' THEN 1 ELSE 0 END ) AS total_sum
FROM write_list1;
답변 2
$r = sql_query("select concat(wr_11, wr_12, wr_13, ... , wr_51) as wr_11_51 from write_list1");
while ($row = sql_fetch_array($r)) {
echo substr_count($row['wr_11_51'], '가');
echo substr_count($row['wr_11_51'], '나');
echo substr_count($row['wr_11_51'], '다');
}
SQL 로만 작성한다면 SUM ~ CASE 구문이 복잡해보여도 가장 좋습니다.