用Like条件计算行数

时间:2017-10-12 08:57:06

标签: mysql sql

我有一个像以下的Sql表:

-----------------
id person | entity
------------------
1 | A/B
2 | A/B/C
3 | A/B/C
4 | A/B/D
5 | A/B/C

我想计算拥有相同实体+拥有相同母亲实体的人数

示例:

-----------------
entity | count
------------------
A/B | 5
A/B/C | 3
A/B/D | 1

如何使用SQL请求执行此操作?

2 个答案:

答案 0 :(得分:4)

简单的答案,有一个相关的子查询,计算类似的实体:

select distinct t1.entity, (select count(*)
                            from tablename t2 
                            where t2.entity like concat(t1.entity,'%')) 
from tablename t1;

答案 1 :(得分:0)

您可以使用UNION,例如:

SELECT count(*),'A/B' FROM myTable WHERE entity  like '%A/B%'
UNION
SELECT count(*),'A/B/C' FROM myTable WHERE entity  like '%A/B/C%'
UNION
.... --leave to you to complete as an exercise

你必须完成最后一句