0

我有一张这样的桌子...

+---------+------------+------+-------+
|  City   | NamePeople | Age  | Money |
+---------+------------+------+-------+
| Paris   | John       |  10  |  200  |
| London  |  Marie     |  21  |  300  |
| Paris   |  Kevin     |  50  |  250  |
| Paris   |  Julia     |  45  |  150  |
+---------+------------+------+-------+

我需要一个带范围的结果,像这样

+---------------+------------+-----------------------+-------------------------+
|      City     | Sum(Money) | CountPeopleWithAge<30 | CountPeopleWithAge>30   |
+---------------+------------+-----------------------+-------------------------+
|   Paris       |       600  |                    1  |                      2  |
|   London      |       300  |                    1  |                      0  |
+---------------+------------+-----------------------+-------------------------+

如何使用 sql select 执行此操作?

谢谢。

4

2 回答 2

4
Select
    City,
    Sum(Money),
    Sum(Case When Age < 30 Then 1 Else 0 End),
    Sum(Case When Age > 30 Then 1 Else 0 End)
From
    table
Group By
    City
于 2013-09-16T20:53:43.480 回答
0

您可以使用此查询,

SELECT City, 
    SUM(Money), 
   SUM(case when Age < 30 then 1 else 0 end),
   SUM(case when Age > 30 then 1 else 0 end)
FROM tableA
GROUP BY City
于 2013-09-16T20:56:43.837 回答