Mysql 计算多列中的值如果减去则 1
Mysql count values in multiple columns if minus then 1
您好,我有一个数据库,我尝试进行计数,我可以在其中对值进行乘法运算,然后从中进行计数。
----------------------
|id | name|parts|date|
---------------------
|1 |abc | 2 |2016|
---------------------
|1 |bcd | 3 |2017|
---------------------
|1 |cde | -5 |2018|
----------------------
而我需要的是:
-----------
|id |count|
-----------
|1 | 6 |
-----------
正如我所说,如果我有一个 minu(-),那么 1 与 -3 或 -5 是否等于 1 无关; 2+3+1 = 6;
SELECT `id`,
SUM(CASE WHEN (`parts` < 0) THEN 1 ELSE `parts` END) AS Count
FROM `TableName`
GROUP BY `id`
SUM()
函数 return 是数字列的总和。
CASE
函数可让您评估条件并 return 满足第一个条件时的值(类似于 IF-THEN-ELSE
语句)
试试这个查询:
SELECT id, SUM(IF(parts < 0, 1, parts)) AS `count`
FROM table
GROUP BY id
看了好几遍,我觉得这就是你想要达到的效果。
SELECT
id,
SUM(IF(parts < 0, 1, parts)) AS count
FROM
products
GROUP BY
id
您好,我有一个数据库,我尝试进行计数,我可以在其中对值进行乘法运算,然后从中进行计数。
----------------------
|id | name|parts|date|
---------------------
|1 |abc | 2 |2016|
---------------------
|1 |bcd | 3 |2017|
---------------------
|1 |cde | -5 |2018|
----------------------
而我需要的是:
-----------
|id |count|
-----------
|1 | 6 |
-----------
正如我所说,如果我有一个 minu(-),那么 1 与 -3 或 -5 是否等于 1 无关; 2+3+1 = 6;
SELECT `id`,
SUM(CASE WHEN (`parts` < 0) THEN 1 ELSE `parts` END) AS Count
FROM `TableName`
GROUP BY `id`
SUM()
函数 return 是数字列的总和。
CASE
函数可让您评估条件并 return 满足第一个条件时的值(类似于 IF-THEN-ELSE
语句)
试试这个查询:
SELECT id, SUM(IF(parts < 0, 1, parts)) AS `count`
FROM table
GROUP BY id
看了好几遍,我觉得这就是你想要达到的效果。
SELECT
id,
SUM(IF(parts < 0, 1, parts)) AS count
FROM
products
GROUP BY
id