我已经进行了一些表连接操作,以下是我的数据外观。
Cust_No Account_No Product_H_f Product_H_L
123 A9023 Core Training
123 A9023 Core Training
834 A9023 Core Complimentary
634 A9024 Core Complimentary
264 A9025 DTB Training
263 A9025 DTB Complimentary
677 A9025 DTB Training
我想在这个结果中添加一列,名为“接受培训的客户编号”,应该长这样。(我的原始查询非常复杂,包括6个表的左连接)
Cust_No Account_No Product_H_f Product_H_L Cust_has_Training
123 A9023 Core Training Yes
123 A9023 Core Training Yes
834 A9023 Core Complimentary Yes
834 A9023 Core Training Yes
634 A9024 Core Complimentary No
264 A9025 DTB Training Yes
263 A9025 DTB Complimentary No
677 A9025 DTB Training Yes
677 A9025 DTB Basic Yes
我正在使用以下代码来实现这个功能,看起来它正在工作。但是由于我有4800万条记录,运行时间太长了。有没有办法可以优化这个查询?
SELECT Cust_No,
Account_No,
Product_H_f,
Product_H_L,
(CASE WHEN Cust_No IN (SELECT distinct(Cust_No) from table where
Product_H_L='Training') then 'Yes' else 'No' end) as 'Cust_has_Training'
FROM TABLE