4

次の表があります。

id lb rb ls rs ch bk ot
 1 10000 10001 10001 10001 10001 10001 10000
 2 0 10000 0 10001 0 10000 0
 3 0 0 10000 10001 10000 0 0
 4 0 0 0 10000 0 0 0
 5 0 0 0 10000 0 0 0

すべての列 (0 を除く) の合計個別値を取得できるようにしたいので、結果は次のようになります。

コード数量
10000 8
10001 7

これを行う最も簡単な/最良の方法は何ですか?

ありがとう、スチュ

4

2 に答える 2

1

できるよ

SELECT col1, COUNT(*)
FROM
  (
  SELECT lb AS col1
  FROM table
    UNION ALL 
  SELECT rb
  FROM table
    UNION ALL ... etc
  ) a
WHERE col1 != 0
GROUP BY col1

代わりに、 それぞれにWHERE col1 != 0追加できますWHERE field_name !=0SELECTUNION

于 2011-09-28T13:55:09.090 に答える
0
SELECT code     AS Code
     , SUM(cnt) AS Qty
FROM
  (   SELECT lb AS code
           , COUNT(*) AS cnt
      FROM TableX
      GROUP BY lb        
  UNION ALL
      SELECT rb AS code
           , COUNT(*) AS cnt
      FROM TableX
      GROUP BY rb
  UNION ALL        
    ...
  UNION ALL
      SELECT ot AS code
           , COUNT(*) AS cnt
      FROM TableX
      GROUP BY ot
  ) AS tmp
GROUP BY code
于 2011-09-28T14:10:52.600 に答える