数据库中子类别的总和?

时间:2013-07-13 03:11:28

标签: mysql sql

我有一个包含category和subcategory字段的表。我想要特定类别下不同子类别的总和。像表

Category  | Sub category | Amount 
----------+--------------+--------
Children  |  Cloth       |  200
Children  |  Cloth       |  500
Transport |  Fuel        |  300
Children  |  School      |  500

我想要儿童类别下的布料总和。喜欢不同类别的。请帮助。

3 个答案:

答案 0 :(得分:3)

从你的问题中不清楚你究竟想要什么,但我认为这是以下之一:

您希望 每个类别的每个子类别,请执行以下操作:

select
    category,
    sub_category,
    sum(amount) as total
from mytable
group by category, sub_category

如果您希望只是子类别“儿童”,请执行以下操作:

select
    sub_category,
    sum(amount) as total
from mytable
group by sub_category
where category = 'Children'

答案 1 :(得分:2)

喜欢这个吗?

SELECT
     sub_category
    ,sum(amount)
FROM
    the_table
GROUP BY
    sub_category
WHERE
    category = 'Children';

SELECT
     category
    ,sub_category
    ,sum(amount)
FROM
    the_table
GROUP BY
     category
    ,sub_category

<小时/> 使用SQLite进行测试/演示:

$ sqlite3 test.sqlite
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table t ( category varchar, subcategory varchar, amount int);
sqlite> insert into t values ('children', 'cloth', 200), ('children', 'cloth', 500), ('transport', 'fuel', 300), ('children', 'school', 500);
sqlite> select * from t ;
children|cloth|200
children|cloth|500
transport|fuel|300
children|school|500
sqlite> 
sqlite> select category, subcategory, sum(amount) from t group by category, subcategory;
children|cloth|700
children|school|500
transport|fuel|300
sqlite> 

答案 2 :(得分:1)

select
    category,
    sub_category,
    sum(amount) as total
from mytable where sub_category = 'Cloth'
group by category, sub_category