我的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)!
有效吗?
答案 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