本文是本人在做案例时遇到的一个问题,如何计算一个表中的两列不重复的数据数。本人主要通过建立一个新表,将两列数据合并成一列查询即可,具体如下:
(payment为旧表,payment1为新表)
SELECT * INTO payment1 FROM payment WHERE 1=1;
INSERT INTO payment1(staff_id) SELECT customer_id FROM payment;
SELECT COUNT(DISTINCT staff_id) FROM payment1;
第一句,创建了一个类似于payment的新表payment1,payment1就相当于复制payment。当WHERE后的表达式为FALSE时,创建的新表只复制旧表的结构。
第二句,将旧表payment中的customer_id那一列插入到新表payment1的staff_id那一列。
第三句,查询payment1中staff_id那一列不同值的个数即为两列的不重复数据的数目