【发布时间】:2015-10-13 07:17:24
【问题描述】:
我有表“对象”:
id (int)
name (varchar)
group_id (varchar) default null
我做了一些插入:
insert into objects values
(null, 'Cat', null),
(null, 'Dog', null),
(null, 'Mouse', 'AAA'),
(null, 'Eagle', 'BBB'),
(null, 'Elephant', null),
(null, ' Bull', 'AAA');
我需要计算总行数。但是,group_id 为“AAA”的两行应合并为一行。 在上面的例子中,“count”应该返回“5”。这是因为:
- 字段“group_id”的值为 NULL 的 3 行
- group_id 为“BBB”的行有 1 次“出现”
- group_id 为“AAA”的行有 1 次“出现”
使用 group_id 进行计数似乎不是解决方案,因为它返回 3 行,并且对于每一行它给出一个计数。我只需要总行数。
使用 DISTINCT 似乎也无济于事。查询:
select count(distinct(group_id)) from objects;
返回值为“2”的行
【问题讨论】:
-
id怎么可以为空?不应该为空
-
@bluto 这是一个自动递增的整数
标签: mysql