我在这里说明我的表名称TB包含三列和类似的数据
Cl1. Cl2 Cl3 0. X. A 0. Y. B 0. Z. C 1. X. a 1. X. b 1. X. c 1. Z. d
我这样输出
Cl1. Cl2. Cl3. No 0. X. A. 3 0. Y. B. 0 0. Z. C. 1
此处没有列显示Cl2的重复。当Cl1。= 1时的值与Cl2的相应值。当Cl1。 = 0表示Cl1。 = 1,在这里我们可以看到Cl。= 1和Cl2。= X,它的值对于Cl1。= 1重复两次,类似于在找不到Cl1。= 1和Cl2。= Y时不匹配0
我希望我已经描述了我的问题
我做了很多尝试,但没有得到任何解决方案。我的问题浮现在脑海。 我的几次尝试就像
Select Cl1. ,Cl2. ,Cl3. ,IF(Cl2.=(Select Cl2. From TB where Cl1.=1),Cl2. ,0) as no.
From TB
where Cl2.=0
我也尝试对同一张表使用join type语句,但这也无济于事。 请大家帮我。如果我在描述我的问题时犯了任何错误,那么我是栈溢出新手,
答案 0 :(得分:0)
尝试一下,@ Rajesh
SELECT
t1.cl1,
t1.cl2,
t1.cl3,
IFNULL(cnt, 0) as No
FROM
(
SELECT cl1, cl2, cl3 FROM tb WHERE cl1=0
) AS t1
LEFT OUTER JOIN
(
SELECT cl2, COUNT(cl2) AS cnt FROM tb WHERE cl1 <> 0 GROUP BY cl2
) AS t2
ON t1.cl2=t2.cl2