我发布了类似的问题
这次数据集是按行排列的,但逻辑保持不变。这些项目将被添加到 list1,2,3.. 一个一个。我使用了将项目添加到列表中的日期。
这是数据
CREATE TABLE lists ( column1, column2 , column3) AS
SELECT 'list1', '01-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list1', '02-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list2', '01-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list2', '02-01-2020' , 'toy' FROM DUAL UNION ALL
SELECT 'list2', '03-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list3', '01-01-2020' , 'toy' FROM DUAL UNION ALL
SELECT 'list3', '02-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list3', '03-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list4', '01-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list4', '02-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list4', '03-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list5', '01-01-2020' , 'toy' FROM DUAL UNION ALL
SELECT 'list5', '02-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list5', '03-01-2020' , 'toy' FROM DUAL UNION ALL
SELECT 'list5', '04-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list6', '01-01-2020' , 'car' FROM DUAL UNION ALL
SELECT 'list6', '02-01-2020' , 'cards' FROM DUAL UNION ALL
SELECT 'list6', '03-01-2020' , 'toy' FROM DUAL UNION ALL
SELECT 'list6', '04-01-2020' , 'cards' FROM DUAL;
桌子看起来像这样
COLUMN1 COLUMN2 COLUMN3
list1 01-01-2020 car
list1 02-01-2020 car
list2 01-01-2020 car
list2 02-01-2020 toy
list2 03-01-2020 car
list3 01-01-2020 toy
list3 02-01-2020 cards
list3 03-01-2020 cards
list4 01-01-2020 car
list4 02-01-2020 cards
list4 03-01-2020 cards
list5 01-01-2020 toy
list5 02-01-2020 cards
list5 03-01-2020 toy
list5 04-01-2020 cards
list6 01-01-2020 car
list6 02-01-2020 cards
list6 03-01-2020 toy
list6 04-01-2020 cards
如果列表中只有 CAR,那么您计算汽车的数量。如果有非汽车项目,则计算添加到列表中的第一个非汽车项目
例如
list1 car 2
list2 toy 1
list3 toy 1
list4 cards 2
list5 toy 2
list6 cards 2