尝试在列A中查找列B的实例数并在子查询中输出结果

Trying to find the number of instances of Column B in Column A and output a result in a subquery

所以,我正在尝试执行以下操作:如果 Store 有 1 个水果,则输出 'SINGLE'。如果它有超过 1 个水果,则输出 'MULTIPLE'。我在一个单独的 SQL 文件中尝试过这个,只查询 table:

SELECT STORE, FRUIT
CASE
WHEN COUNT(FRUIT) > 1
THEN 'MULTIPLE'
ELSE 'SINGLE'
AS NO_FRUIT
FROM STORES
GROUP BY STORE, FRUIT;

这似乎给出了我想要的输出,类似于:

STORE      |FRUIT |NO_FRUIT
---------------------------
SUPERMARKET|TOMATO|MULTIPLE
---------------------------
WETMARKET  |APPLE |SINGLE

我正在尝试在 select 查询本身中执行此操作,该查询本身 selecting 来自我需要的许多其他 table 的许多其他字段,我认为这将使这变成一个子查询。我不太确定如何让它工作。感谢您的帮助!

其实你的逻辑表明你想单独按商店聚合,然后检查水果的数量:

SELECT STORE,
       CASE WHEN COUNT(*) > 1 THEN 'MULTIPLE' ELSE 'SINGLE' END AS NO_FRUIT
FROM STORES
GROUP BY STORE;

编辑: 如果要保留所有列,则可以使用 COUNT 作为分析函数。

SELECT STORE, FRUIT,
       CASE WHEN COUNT(*) OVER (PARTITION BY STORE) > 1
            THEN 'MULTIPLE' ELSE 'SINGLE' END AS NO_FRUIT
FROM cte
ORDER BY STORE;