1

我正在寻找适当的 SQl 查询以从数据库中提取数据并计算特定行以得出总数...这是我的表:

------------------------------------------
|name     |App      |Dep       |Sold     |
------------------------------------------
|Joe      |1        |1         |2        |
|Joe      |1        |2         |2        |
|Steve    |1        |1         |1        |
|Steve    |1        |2         |1        |
------------------------------------------

所以我需要为每个名称计算每列中的“1”,然后输出如下总数:

Joe    |  2 App  |  1 Dep  | 0 Sold
Steve  |  2 App  |  1 Dep  | 2 Sold

有人对我有起点吗?我不确定我是否需要 JOIN 或者我可以为每列添加单独的 COUNT?

4

1 回答 1

1
SELECT  Name,
        SUM(App = 1) TotalApp,
        SUM(Dep = 1) TotalDep,
        SUM(Sold = 1) TotalSold
FROM    tableName
GROUP   BY Name

App = 1是 mysql 特定的语法,它执行布尔算术结果1 and 0。为了使其对 RDBMS 更友好,您可以使用CASE例如。SUM(CASE WHEN App = 1 THEN 1 ELSE 0 END).

于 2013-09-18T23:17:22.233 回答