【发布时间】:2017-04-13 18:41:19
【问题描述】:
我的数据与此示例类似,该示例非常庞大,因此理想情况下需要高效的代码。我想在充电器维修后找到那些交易(最多 3 笔)。
TRANSACTION_ID REPAIR_DATE CUSTOMER_ID COMPONENT LABOR_CODE_DESC ....
28289 6/25/2015 AH123 LAPTOP CHARGER REPAIR
28235 6/29/2015 AH123 LAPTOP CHIP REPLACE
258978 6/27/2013 HW687 PHONE TOUCH SCREEN
28223 6/2/2014 AH123 LAPTOP BATTERY REPAIR
215678 9/7/2014 HW687 PHONE SIM REPAIR
527808 7/30/2016 HW687 LAPTOP BATTERY REPAIR
567976 7/28/2014 HW687 LAPTOP CHARGER REPAIR
7678698 8/68/2015 AH123 LAPTOP BATTERY REPAIR
9987908 5/7/2006 TU890 PHONE SIM REPAIR
.....
OUTPUT
TRANSACTION_ID REPAIR_DATE CUSTOMER_ID COMPONENT LABOR_CODE_DESC ....
28235 6/29/2015 AH123 LAPTOP CHIP REPLACE
7678698 8/68/2015 AH123 LAPTOP BATTERY REPAIR
527808 7/30/2016 HW687 LAPTOP BATTERY REPAIR
215678 9/7/2014 HW687 PHONE SIM REPAIR
.....
所以我想要的只是那些进行过充电器维修的客户 ID 交易,并且在充电器维修日期之后最多 3 次交易
SELECT TRANSACTION_ID, REPAIR_DATE,CUSTOMER_ID,LABOR_CODE_DESC from table
where customer_id IN (SELECT CUSTOMER_ID from table where LABOR_CODE_DESC
like '%CHARGER REPAIR%')
不知道如何在 CHARGER REPAIR 后扩展以获得最多 3 笔交易
【问题讨论】:
-
只需在查询末尾添加限制 3
-
用您正在使用的数据库标记您的问题。
-
我正在使用 teradata