我的product
表格如下:
id_product | product_count | product_name
1 | 10 | name1
2 | 20 | name2
3 | 20 | name3
4 | 52 | name4
5 | 30 | name5
6 | 50 | name6
我想做一个查询,结果将是:
product_group_name | product_group_name | product_group_name |...more groups
30(sum) | 72(sum) | 50(sum) |...more values
其中group为id_product
,如(1,2 OR 3,4 OR 1,4,5),组名将为别名。
这是用于创建单个列的sql代码:
SELECT
cast(SUM(product.product_count) as float) as group_name
FROM
product
WHERE
product.id_product in (608,913,528,529,920,406,407,408,912,919,918,917,924,926,925)
此查询的结果是:
| group_name |
| 200 |
是否可以添加更多具有组名的列?对他们来说重要的是列,而不是行。
答案 0 :(得分:1)
答案 1 :(得分:0)
如果我理解正确,一种方法是通过条件聚合:
SELECT
cast(SUM(
CASE WHEN product.id_product in (608,913,528, ... ,924,926,925)
THEN product.product_count ELSE NULL END) as float) as group_name1
,cast(SUM(
CASE WHEN product.id_product in (1,2,3)
THEN product.product_count ELSE NULL END) as float) as group_name2
,cast(SUM(
CASE WHEN product.id_product in (4,5)
THEN product.product_count ELSE NULL END) as float) as group_name3
FROM
product
;