【发布时间】:2015-12-04 01:47:01
【问题描述】:
在第 2 部分中,我有两个表
第一个表来自 tb1,第二个来自 tb2。
+------+----------+------+
| kd | skl | name |
+------+----------+------+
| 001 | database | a |
| 001 | web | b |
| 001 | web | c |
| 002 | app | d |
| 002 | web | e |
| 002 | app | f |
| 003 | json | g |
| 003 | - | h |
| 003 | - | i |
| 004 | ruby | j |
| 004 | database | k |
| 004 | web | l |
| 005 | - | m |
| 005 | - | n |
| 005 | - | o |
+------+----------+------+
+------+----------+------+
| kd | skl | name |
+------+----------+------+
| 001 | database | p |
| 001 | web | q |
| 001 | web | r |
| 002 | app | s |
| 002 | web | t |
| 002 | app | u |
| 003 | json | v |
| 003 | web | w |
| 003 | app | x |
| 004 | ruby | y |
| 004 | database | z |
| 004 | web | d |
| 005 | - | c |
| 005 | web | b |
| 005 | app | a |
+------+----------+------+
这和我在Select count dependent rows from multiple tables with union的第一个问题一样
我在下面接受这个查询。
select kd,skl,name,sum(row) brs from
(select a.kd,skl,name,count(a.kd) row
from tb1 a where skl in('web','app')
group by a.kd,skl,name
union all
select b.kd,skl,name,count(b.kd)
from tb2 b where skl in('web','app')
group by b.kd,skl,name)t
group by kd,name,skl;
选择查询给出结果
+------+-----+------+------+
| kd | skl | name | brs |
+------+-----+------+------+
| 001 | web | b | 1 |
| 001 | web | c | 1 |
| 001 | web | q | 1 |
| 001 | web | r | 1 |
| 002 | app | d | 1 |
| 002 | web | e | 1 |
| 002 | app | f | 1 |
| 002 | app | s | 1 |
| 002 | web | t | 1 |
| 002 | app | u | 1 |
| 003 | web | w | 1 |
| 003 | app | x | 1 |
| 004 | web | d | 1 |
| 004 | web | l | 1 |
| 005 | app | a | 1 |
| 005 | web | b | 1 |
+------+-----+------+------+
问题是 brs 列不计数取决于 kd 列数据。
我需要下面的结果
+------+-----+------+------+
| kd | skl | name | brs |
+------+-----+------+------+
| 001 | web | b | 4 |
| 001 | web | c | 4 |
| 001 | web | q | 4 |
| 001 | web | r | 4 |
| 002 | app | d | 6 |
| 002 | web | e | 6 |
| 002 | app | f | 6 |
| 002 | app | s | 6 |
| 002 | web | t | 6 |
| 002 | app | u | 6 |
| 003 | web | w | 2 |
| 003 | app | x | 2 |
| 004 | web | l | 2 |
| 004 | web | d | 2 |
| 005 | web | b | 2 |
| 005 | app | a | 2 |
+------+-----+------+------+
请给出选择查询示例或该主题的线索。
非常感谢所有建议。
【问题讨论】:
-
您能否向我们介绍一下您的查询想要达到的目标?
-
@TimBiegeleisen 显示所有名称列数据,计数取决于 brs 列中的 kd 列