MySQL语句SUM仅在

时间:2017-12-01 14:46:16

标签: php mysql

我的mysql语句需要一些帮助。

这是我的桌子"汽车":

| Manufact | Model  |
---------------------
| Audi     | 2      |
| Audi     | 2      |
| Audi     | 4      |
| Audi     | 4      |
| Audi     | 8      |
| Audi     | 8      |
| Audi     | 8      |

我想使用SUM()

SELECT 
    SUM(model) as number
FROM
    cars

但我不想只拍一次,只有一次!我想得到这个数字:20(2 + 2 + 4 + 4 + 8)!

有效吗?

4 个答案:

答案 0 :(得分:0)

尝试以下查询:

SELECT SUM(Model) + 8 FROM cars WHERE Model != 8;
// Result 20 (2+2+4+4+8)  

答案 1 :(得分:0)

SELECT * FROM cars WHERE Manufact ='Audi'

此查询将为您提供manufact字段等于奥迪的所有字段。如果您想为其他标记执行此操作,则只需删除where子句。

执行查询并获取结果后,为了示例,您的结果将存储在名为$result的数组中。

使用array_sum,您可以获得所需列的总和:

$sum=array_sum['result]['Model']
echo $sum;

如果您使用更多记录,这将返回此示例的20或您的一般结果。 提供php解决方案作为php也在你的问题中标记

答案 2 :(得分:0)

这应该有效

select sum(number) from
(
    SELECT SUM(Model) as number FROM cars where Model != 8
    UNION ALL
    SELECT SUM(distinct Model) as number FROM cars where Model = 8
) as a

答案 3 :(得分:0)

另一种方法是,按void init_cluster(struct cluster_t *c, int cap) { c = malloc(sizeof(struct cluster_t)); c->size = 0; c->capacity = cap; c->obj = (struct obj_t*)malloc(cap * sizeof(struct obj_t)); } Manufact列找到计数组。然后将其用作子查询并使用Model表达式

<强>查询

CASE