我将以下查询发送到我的表:
SELECT code_ver,
platform_type,
category_name
FROM builds
WHERE runtype LIKE 'test'
AND platform_type NOT LIKE 'total';
+-----------+---------------+---------------+
| code_ver | platform_type | category_name |
+-----------+---------------+---------------+
| 10.0.1.50 | 8k | UMTS |
| 10.0.1.50 | 8k | UMTS |
| 10.0.1.50 | 8k | IP |
| 10.0.1.50 | 8k | IP |
| 10.0.1.50 | 9k | IP |
| 10.0.1.50 | 9k | IP |
| 10.0.1.50 | 9k | UMTS |
| 10.0.1.50 | 9k | UMTS |
| 10.0.1.50 | 9k | UMTS |
| 10.0.1.50 | 9k | Stability |
| 10.0.1.50 | 9k | Stability |
| 10.0.1.51 | 8k | UMTS |
| 10.0.1.51 | 8k | UMTS |
| 10.0.1.51 | 8k | IP |
| 10.0.1.51 | 8k | IP |
| 11.0.1.50 | 9k | UMTS |
| 11.0.1.50 | 9k | IP |
+-----------+---------------+---------------+
我触发以下查询
SELECT code_ver,
platform_type,
Count(*)
FROM builds
WHERE runtype LIKE 'test'
AND platform_type NOT LIKE 'total'
GROUP BY code_ver,
platform_type;
+-----------+---------------+----------+
| code_ver | platform_type | count(*) |
+-----------+---------------+----------+
| 10.0.1.50 | 8k | 4 |
| 10.0.1.50 | 9k | 7 |
| 10.0.1.51 | 8k | 4 |
| 11.0.1.50 | 9k | 2 |
+-----------+---------------+----------+
当我触发以下查询时
SELECT code_ver,
platform_type,
Count(*)
FROM builds
WHERE runtype LIKE 'test'
AND platform_type NOT LIKE 'total'
GROUP BY code_ver,
platform_type,
category_name;
+-----------+---------------+----------+
| code_ver | platform_type | count(*) |
+-----------+---------------+----------+
| 10.0.1.50 | 8k | 2 |
| 10.0.1.50 | 8k | 2 |
| 10.0.1.50 | 9k | 2 |
| 10.0.1.50 | 9k | 2 |
| 10.0.1.50 | 9k | 3 |
| 10.0.1.51 | 8k | 2 |
| 10.0.1.51 | 8k | 2 |
| 11.0.1.50 | 9k | 1 |
| 11.0.1.50 | 9k | 1 |
+-----------+---------------+----------+
但我希望计算(code_ver + platform_type + category_name)的唯一组合,以使输出看起来像这样:
+-----------+---------------+----------+
| code_ver | platform_type | count(*) |
+-----------+---------------+----------+
| 10.0.1.50 | 8k | 2 |
| 10.0.1.50 | 9k | 3 |
| 10.0.1.51 | 8k | 2 |
| 11.0.1.50 | 9k | 2 |
+-----------+---------------+----------+
有人可以在这里给我一些建议。
答案 0 :(得分:3)
使用SQL内部查询。
SELECT ta.code_ver,
ta.platform_type,
Count(*)
FROM (SELECT code_ver, platform_type
FROM builds
WHERE runtype LIKE 'test'
AND platform_type NOT LIKE 'total'
GROUP BY code_ver, platform_type, category_name) AS ta -- table alias
GROUP BY ta.code_ver, ta.platform_type;
答案 1 :(得分:0)
根据您提供的结果集,您似乎也希望按category_name
SELECT code_ver,
platform_type,
Count(*) ,
category_name
FROM builds
WHERE runtype LIKE 'test'
AND platform_type NOT LIKE 'total'
GROUP BY code_ver,
platform_type,
category_name;