2017-02-23 25 views
-2

我想算中存在的2列像同行数相同值两列

Column A Column B 
1    5 
5    6 
4    1 
5    4 

不同的价值如何才能得到答案:4,因为只有四两列不同的值。

能否请您指导我如何查询申请(非重复计数在Club1和Club2)

SELECT COUNT(DISTINCT registrationevent.RegistrationNo)AS TotalRegistration,SUM(IF((registrationevent.Spouse = 1),1 ,0))AS CoupleRegistration,Count(DISTINCT registration.Club)AS Club1,统计(独特注册.SpouseClub)俱乐部2 FROM(registrationevent)注册登记注册事项。注册否=注册。注册号

+0

'count distinct same value' - 你能澄清一点吗? – GurV

+0

从两列中计算不同的值。 – Sanjeev

+0

[我如何(或者可以)在多列上选择DISTINCT?](http://stackoverflow.com/questions/54418/how-do-i-or-can-i-select-distinct-on -multiple-columns) –

回答

1

AFAIK联盟本身不同:

SELECT A 
FROM tab 
UNION 
SELECT B 
FROM tab 

或 - 你似乎是有意只计数:

SELECT COUNT(*) 
FROM 
    (
    SELECT A 
    FROM tab 
    UNION 
    SELECT B 
    FROM tab 
) AS C 
+0

谢谢回复 – Sanjeev

+0

能否请您指导我如何在此查询申请(非重复计数在Club1和Club2) SELECT COUNT(DISTINCT registrationevent.RegistrationNo)AS TotalRegistration, SUM(IF((registrationevent.Spouse = 1 ),1,0))AS CoupleRegistration, 计数(DISTINCT registration.Club)AS Club1, 计数(不同registration.SpouseClub)作为Club2 FROM(registrationevent) JOIN登记ON registrationevent.RegistrationNo = registration.RegistrationNo – Sanjeev

1

你的意思是这样?

select count(*) 
from (
    select distinct * from t 
) t 
+0

我想要这样,但其他一些数列在那里,它会影响像在同一个表注册,性别等字段在那里,我想统计所有在同一个查询 – Sanjeev

+0

@Sanjeev - 使用星号来选择不同的所有列或如果你想选择其中的一些,在子查询中明确提及它们)。更新了答案。 – GurV

+0

能否请您指导我如何在此查询申请(非重复计数在Club1和Club2) SELECT COUNT(DISTINCT registrationevent.RegistrationNo)AS TotalRegistration, SUM(IF((registrationevent.Spouse 1),1 =, 0))AS CoupleRegistration, 计数(DISTINCT registration.Club)AS Club1, 计数(不同registration.SpouseClub)作为Club2 FROM(registrationevent) JOIN登记ON registrationevent.RegistrationNo = registration.RegistrationNo – Sanjeev