数据库
首页 > 数据库> > 跨列的MySQL不同值

跨列的MySQL不同值

作者:互联网

我有下表:

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),因此结果是这样的:

Code   Qty
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

您可以向UNION中的每个SELECT添加WHERE field_name!= 0,而不是WHERE col1!= 0

标签:mysql,distinct,multiple-columns
来源: https://codeday.me/bug/20190709/1418217.html