【问题标题】:Nested query to return productname and count of products with max price嵌套查询以返回产品名称和最高价格的产品数量
【发布时间】:2021-03-25 08:55:51
【问题描述】:

我有一个名为 products 的表,我应该使用嵌套查询来返回产品名称和具有最高价格的产品数量的计数。 但是我应该如何返回产品名称和具有最高价格的产品数量?我尝试执行 SELECT productname 和 COUNT(productid),但它给了我一个错误,因为所有 productsname 都是独一无二的,因为它们都有自己的 productid。

有没有办法做到这一点?

这里是表中内容的示例:

productid | productname | price
1           Thing1        33
2           Thing2        77
3           Thing3        44
4           Thing4        55
5           Thing5        66

这是我目前所拥有的:

SELECT  ?????
FROM Production.Products
WHERE price =
    (SELECT MAX(price)
        FROM Production.Products);

这是根据所要求的结果应该是什么:

productname | NumberofProductsWithMaxPrice
Thing2        1

【问题讨论】:

  • 不考虑产品,表中的最高价格是多少?不同的产品可以有相同的价格吗?编辑问题以将示例数据和所需结果显示为文本表。
  • 您尝试过的查询有什么问题?对我来说看起来不错(除了???)。
  • SELECT productname, COUNT(productid) 是我试过的。它给了我一个错误

标签: sql sql-server tsql


【解决方案1】:

在 SQL Server 中,您可以使用以下方法为每个产品获取单独的行:

select top (1) with ties p.*
from production.products p
order by price desc;

如果你想要计数,子查询是一种方法:

select count(*)
from (select top (1) with ties p.*
      from production.products p
      order by price desc
     ) p;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    相关资源
    最近更新 更多