我有下表:
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
最简单/最好的方法是什么?
谢谢,斯图
我有下表:
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
最简单/最好的方法是什么?
谢谢,斯图
你可以做
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 !=0
每个SELECT
UNION
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