2011-11-29 3 views
0

20 개의 필드가있는 MySQL 테이블이 있습니다. 20 명 중 15 명이 0, NA, 1 +와 같은 3 가지 값을 가질 수 있습니다. 나는> 0 값이있는 각 필드 수를 가져 오기 위해 쿼리를 작성해야합니다. 단일 쿼리로 가져올 수 있습니까?계산 필드 값을 가져 오는 쿼리

감사합니다.

+0

http://www.tizag.com/mysqlTutorial/mysqlcount.php – Anonymous

+0

@danontheline. 그것은 단지 레코드 수입니다. 나는 현명한 계산에 대해 물었다. –

답변

1

내가 뭔가를 누락하지 않는 한 http://dev.mysql.com/doc/refman/5.0/en/union.html ...

SELECT 
    COUNT(CASE WHEN c1<>'0' THEN 1 END) AS c1_count, 
    COUNT(CASE WHEN c2<>'0' THEN 1 END) AS c2_count, 
    -- ... 
    COUNT(CASE WHEN c15<>'0' THEN 1 END) AS c15_count 
FROM t 
0
select "column1", count(*) from your_table where value>0 
union all 
select "column2", count(*) from your_table where value>0 
... 
... // repeat until column20 

흥미로운 문서 : -

관련 문제