繁体   English   中英

只选择在同一表中具有多个值的那些记录

[英]Select only those records that have multiple value in same table

我只有那些在同一表中具有多行的行。 例如,见下图。 在此处输入图片说明

在上图中,您可以看到2个突出显示的列,一列用于useid(u_id),第二列用于产品ID(product_id)。

因此,您可以看到用户ID 7具有多个产品,例如(78,40,44,45,53),用户ID 9具有多个产品,例如(79,75,79),就像用户ID 40具有多个产品。

因此,如果像特定用户有多个产品那样想要投放,则它将在“产品名称”列中显示“多个产品”,而不是显示所有产品名称。 在此处输入图片说明

上图显示所有产品,但如果特定用户有多个产品,则我需要显示“多个产品”消息而不是所有产品

我已经使用以下查询,但没有得到想要的结果。

SELECT *
FROM orderlist
WHERE product_id IN (
    SELECT product_id
    FROM orderlist
    GROUP BY product_id
    HAVING COUNT(*) > 1
)

您可以在聚合后执行JOINS

SELECT *,
       CASE WHEN c.Counts > 1 THEN 'Multi' ELSE o.ProductName END ProductName 
FROM 
(
     SELECT product_id, COUNT(*) Counts
     FROM orderlist
     GROUP BY product_id
)c INNER JOIN orderlist o ON o.product_id = c.product_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM