仅当组件包含1时,MySQL sun列
我试图构造一个select查询,仅当列包含1(一)时,才对每列的总数求和 这就是我到目前为止所做的:仅当组件包含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
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和..