我的数据库是这样的,但这是一个演示:
id | pkg_name | pkg_value
1 | package 1 | 1200
2 | package 2 | 1200
3 | package 3 | 1200
4 | package 4 | 1200
5 | master | 1400
6 | master | 1500
以下是我想查询的内容:
请帮我构建此查询!
我创建的用于统计所有字段和组的查询如下:
SELECT pkg_name, count(*) from packages GROUP by pkg_name
先谢谢。
答案 0 :(得分:1)
SELECT
pkg_name,
IF(COUNT(*)<=2, COUNT(*), 2) AS total
from packages GROUP by pkg_name
这应该可行,但可能有一个更优化的版本,它不会执行两次计数。
答案 1 :(得分:0)
您可以尝试使用CASE
表达式,如果基础计数为1,则将包计数映射为1,否则计数为2或更多时为2。
SELECT
pkg_name,
CASE WHEN COUNT(*) = 1 THEN 1 ELSE 2 END AS pkg_cnt
FROM packages
GROUP BY
pkg_name