表:帐目
+-------------+------+
| Column Name | Type |
+-------------+------+
| account_id | int |
| income | int |
+-------------+------+
Account_id是该表的主键(具有唯一值的列). 每一行都包含有关一个银行帐户的月收入的信息.
写一个解决方案来计算每个薪资类别的银行账户数量.薪金类别包括:
- "低工资":所有工资严格低于20000美元."平均水平
- 薪金":包括范围内的所有薪金[20000美元、50000美元].
- "高薪":所有薪水严格高于50000美元.
结果表必须包含所有三个类别.如果没有 类别中的帐户,则返回0.
以任意顺序返回结果表.
结果格式如下例所示.
例1:
输入: 帐户表:
+------------+--------+
| account_id | income |
+------------+--------+
| 3 | 108939 |
| 2 | 12747 |
| 8 | 87709 |
| 6 | 91796 |
+------------+--------+
输出:
+----------------+----------------+
| category | accounts_count |
+----------------+----------------+
| Low Salary | 1 |
| Average Salary | 0 |
| High Salary | 3 |
+----------------+----------------+
解释: 低薪:账号2. 平均工资:没有账户. 高薪:账户3、6和8.
link to the problem statement. I tried this.
SELECT
CASE
WHEN income < 20000 THEN "Low Salary"
WHEN income >= 20000 AND income <= 50000 THEN "Average Salary"
ELSE "High Salary"
END AS category,
COUNT(*) AS accounts_count
FROM Accounts
GROUP BY category;
My output is this个
| category | accounts_count |
| ----------- | -------------- |
| High Salary | 3 |
| Low Salary | 1 |
But expected output is this个
| category | accounts_count |
| -------------- | -------------- |
| High Salary | 3 |
| Low Salary | 1 |
| Average Salary | 0 |