SQL查询,选择1个元素,具有最高COUNT元素B和最低VALUE元素C.

时间:2013-12-10 13:41:48

标签: mysql sql sql-server

我完全坚持以下问题:

表“供应商”:1004种不同的物品,有21种不同的供应商(这么多物品有相同的供应商,但同一篇文章从未有超过1家供应商)

表“文章”:1004篇文章,每篇文章的价格,文章的种类(服装,食品等)。 因此每个不同的文章都有不同的价格,但某些文章组属于1种。

示例:第32条(男士鞋码40),236(女鞋40码),54(童鞋尺码20)都在“KIND”栏中有“SHOE”。

问题: 我将问题分成两部分。

  1. 选择一篇文章,其中这类文章的供应商的AMOUNT是最高的。
  2. 在此群组中,选择价格最低的文章。
  3. 最后,答案应该是:文章,价格,供应商。 (换句话说,属于供应商数量最多且价格最低的物品的条款。)

    经过大量的思考后,我才得到这个......

    SELECT 
        article.art, article.price, 
        COUNT(DISTINCT supplier.sup)
    FROM article, supplier
    WHERE article.art = supplier.art
    GROUP BY artikel.art
    

    我希望这能告诉我每篇文章有多少供应商,但它没有。 我确定你必须使用以下内容:

    HAVING MIN(price)

    ORDER BY article.price ASC AND COUNT(DISTINCT supplier.sup) DESC

    我已经尝试了我认为可能的所有代码组合,但我找不到答案。这里有人能够吗?

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西:

SELECT
    article.art, article.price, 
    COUNT(DISTINCT supplier.sup)
FROM article LEFT OUTER JOIN supplier ON article.art = supplier.art
ORDER BY artikel.price ASC 
LIMIT 0,1
GROUP BY artikel.art