mysql在多个列中的计数值,如果减则为1

cs7cruho  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(428)

嗨,我有一个数据库,我试图做一个计数,在那里我可以多重的价值观和价值观,使计数从他们。

----------------------
    |id | name|parts|date|
    ---------------------
    |1  |abc  | 2   |2016|
    ---------------------
    |1  |bcd  | 3   |2017|
    ---------------------
    |1  |cde  | -5  |2018|
    ----------------------

我需要的是:

-----------
    |id |count|
    -----------
    |1  |  6  | 
    -----------

就像我说的,如果我有一个minu(-),那么is-3或-5等于1并不重要;2+3+1 = 6;

ymdaylpp

ymdaylpp1#

SELECT `id`, 
SUM(CASE WHEN (`parts` < 0) THEN 1 ELSE `parts` END) AS Count 
FROM `TableName` 
GROUP BY `id`

这个 SUM() 函数返回数值列的总和。
这个 CASE 函数允许您评估条件并在满足第一个条件时返回值(如 IF-THEN-ELSE 声明)

vjhs03f7

vjhs03f72#

尝试此查询:

SELECT id, SUM(IF(parts < 0, 1, parts)) AS `count`

FROM table

GROUP BY id
cgfeq70w

cgfeq70w3#

读了几遍,我想这就是你想要达到的。

SELECT 
    id, 
    SUM(IF(parts < 0, 1, parts)) AS count
FROM 
    products
GROUP BY
    id

相关问题