Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当组件包含1时,MySQL sun列_Mysql - Fatal编程技术网

仅当组件包含1时,MySQL sun列

仅当组件包含1时,MySQL sun列,mysql,Mysql,我试图构造一个select查询,仅当列包含1(一)时,才对每列的总数求和 这就是我到目前为止所做的: SELECT UniqueID, SUM( SeqID0101 + SeqID0102 + SeqID0103 + SeqID0104 + SeqID0105 + SeqID0106 + SeqID0107 + SeqID0108 + SeqID0109 + SeqID0110 + SeqID0201 + SeqID0202 + SeqID0203 + SeqID0301 + SeqID0

我试图构造一个select查询,仅当列包含1(一)时,才对每列的总数求和

这就是我到目前为止所做的:

SELECT 
UniqueID, 
SUM(
SeqID0101 + SeqID0102 + SeqID0103 + SeqID0104 + SeqID0105 + SeqID0106 + SeqID0107 + SeqID0108 + SeqID0109 + SeqID0110 +
SeqID0201 + SeqID0202 + SeqID0203 + 
SeqID0301 + SeqID0302+ SeqID0303 + SeqID0304 + 
SeqID0401 + SeqID0402 + SeqID0403 + SeqID0404 +
SeqID0501 + SeqID0502 + 
SeqID0601 + SeqID0602 + 
SeqID0701 + SeqID0702 + 
SeqID0801 + SeqID0802 + 
SeqID0901 + SeqID0902 + SeqID0903 +
SeqID1001 + SeqID1002 + SeqID1003 + SeqID1004)
WHERE  
(SeqID0101 = 1 OR SeqID0102 = 1 OR SeqID0103 = 1 OR SeqID0104 = 1 OR SeqID0105 = 1 OR SeqID0106 = 1 OR SeqID0107 = 1 OR SeqID0108 = 1 OR SeqID0109 = 1 OR SeqID0110 = 1 OR SeqID0201 = 1 OR SeqID0202 = 1 OR SeqID0203 = 1 OR SeqID0301 = 1 
OR SeqID0302 = 1 OR SeqID0303 = 1 OR SeqID0304 = 1 OR SeqID0401 = 1 OR SeqID0402 = 1 OR SeqID0403 = 1 OR SeqID0404 = 1 OR SeqID0501 = 1 OR SeqID0502 = 1 OR SeqID0601 = 1 OR SeqID0602 = 1 OR SeqID0701 = 1 OR  SeqID0702 = 1 OR SeqID0801 = 1 
OR SeqID0802 = 1  OR SeqID0901 = 1 OR SeqID0902 = 1 OR SeqID1001 = 1 OR SeqID1002 = 1 OR SeqID1003 = 1)
我遇到的问题是,如果一个列包含3,那么3将包含在总数中

我做错了吗?如果是,我应该如何构造查询

非常感谢您抽出时间


干杯。

您的文字有点不清楚,但您应该能够使用以下内容:

SELECT
   UniqueID,
   SUM(IF(SeqID0101 = 1, 1, 0)
       + IF(SeqID0102 = 1, 1, 0)
       ...
       + IF(SeqID1003 = 1, 1, 0))
FROM
   my_table
GROUP BY 
   UniqueID;

如果知道列只包含1,为什么要执行求和?结果只能是36(如果我算好的话)。您的查询应该是
,其中SeqID0101=1和SeqID0102=1和..