我的数据库是这样的,但这是一个演示:

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


这是我要查询的内容:


如果一项被列出2次或更多次,则仅算作2次。
如果仅列出1次,则仅算作1次。


请帮助我建立此查询!

我创建的用于计算所有字段和组的查询如下:

SELECT pkg_name, count(*) from packages GROUP by pkg_name


先谢谢了。

最佳答案

SELECT
   pkg_name,
   IF(COUNT(*)<=2, COUNT(*), 2) AS total
from packages GROUP by pkg_name


这应该可以,但是可能有一个更优化的版本,它不会两次执行计数。

关于php - 在SQL查询中的if语句中使用分组和大小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45499088/

10-15 01:16