需要T-SQL查询的帮助吗

需要T-SQL查询的帮助吗,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有下表 orderID | itemID --------------------- 100 3425 100 3432 102 4443 102 8754 102 3425 103 6511 103 1176 103 3584 107 4967 109 0067 现在我想查询以下内容 返回每个orderID的it

我有下表

orderID | itemID
---------------------
100          3425
100          3432
102          4443
102          8754
102          3425
103          6511
103          1176
103          3584
107          4967
109          0067
现在我想查询以下内容

  • 返回每个
    orderID
    itemID
    s数,但仅针对每个
    orderID
    s中有3个或更多订单的
    orderID
    s数

  • 使用单个查询,找到所有具有
    itemid3425
    orderID
    s,并列出这些
    orderID
    s的所有
    itemID
    s

  • 第一次我试了

    SELECT orderid,COUNT(itemid) AS item_count
    FROM orderitems 
    WHERE (select COUNT(orderid) from orderitems) >2
    GROUP BY orderid.
    
    但是它没有给出期望的结果……我是T-SQL新手,请帮助……

    1和2的组合查询

    SELECT  OrderID
    FROM    tableName
    GROUP   BY OrderID
    HAVING  COUNT(*) >= 3 AND
            SUM(CASE WHEN ItemID = 3425 THEN 1 ELSE 0 END) >= 1
    

    更新1

    如果这两个问题不同,

    对于问题1

    SELECT  OrderID
    FROM    tableName
    GROUP   BY OrderID
    HAVING  COUNT(*) >= 3 
    
    问题2

    SELECT  a.*
    FROM    tableName a
            INNER JOIN
            (
                SELECT  OrderID
                FROM    tableName
                GROUP   BY OrderID
                HAVING  SUM(CASE WHEN ItemID = 3425 THEN 1 ELSE 0 END) >= 1
            ) b ON  a.OrderID = b.OrderID
    

    它也应该返回103