当前位置: 首页 > 知识库问答 >
问题:

在畅销产品MySQL中获得产品排名

危璞
2023-03-14

让我告诉你一个我遇到的问题的例子。例如,我们有一个名为“订单”的表,其中插入了所有订单和采购。

表A(订单):

+--------------------------+
| CustomerKey | ProductKey |
+--------------------------+
| 306545      | pro1       |
| 597864      | pro3       |
| 784678      | pro2       |
| 905479      | pro3       |
| 306545      | pro1       |
| 348965      | pro3       |
| 784678      | pro3       |
+--------------------------+

现在我想订购并获得我们最畅销的产品,例如在最畅销产品列表中获得pro3排名。

查询输出:

+-------------------------------+
| id | ProductKey | numberSold  |
+-------------------------------+
| 1  | pro3       | 4           |
| 2  | pro1       | 2           |
| 3  | pro2       | 1           |
+-------------------------------+     

我写了这个查询:

select ProductKey, 
count(1) as numberSold
from A group 
by ProductKey 
order by count(1) desc

结果对我没用。例如,我需要让pro27在畅销产品中排名(我们有100000个产品!)

+-------------------------------------+
| id | ProductKey | numberSold | rank |
+-------------------------------------|
| 1  | pro3       | 4          | 1    |
| 2  | pro1       | 2          | 2    |
| 3  | pro2       | 1          | 3    |
+------------------------------+------+

共有1个答案

后化
2023-03-14

您可以使用派生表来解决此问题。不管怎样,查询速度都会很慢,但它会给你想要的结果。

SET @rank = 0;

SELECT *
FROM
(
    select (@rank := @rank + 1) AS Rank,
    ProductKey, 
    count(1) as numberSold
    from A
    group by ProductKey 
    order by count(1) desc
) dt
WHERE dt.ProductKey = 'prod27';
 类似资料:
  • 在函数的单个产品页面中获取产品的SKU时,我遇到了很多麻烦。php。我有多个单一产品页面,我希望根据产品显示不同的文本。我已经创建了一个子主题,我正在处理函数。php文件。我不熟悉wordpress和编辑主题,所以我还不太了解操作顺序。我能够让代码循环运行,并为所有产品提供所有SKU,但这与我所处的实际页面无关。 我试过很多东西。常见的解决方案似乎是: 但那不起作用。由于某些原因,$producs

  • 我想按价格、日期和发布年份等项目对产品进行排序。在发布年份的情况下,我做了一个分类法=发布年份 但它是不工作.我怎么能改变代码可能排序按发布年份顺序?

  • 我在WooCommerce的后端有一个自定义元框。目前,我已将其设置为显示单个产品页面中的一些数据。 我用过

  • 我想得到10产品从一个类别在WooCommerce 例如,对于获取帖子类别的最新帖子,我使用以下代码 我想要一个代码,像这样的商业产品

  • #春招# #华为# 产品行销经理 3.28更新 oc和小奖状 3.20更新 变码 tl:2.2官网投简历 2.14收到测评邮件和签协议 2.16英语测评 2.21前两面 2.22主管面 三轮面试都是面完五分钟发短信告知通过,官网变绿。 想和已经入职的前辈和一起春招的同学们请教一下,多交流。 不知道什么什么时候能开奖啊啊 大概写一下面经,攒一波人品 2.21群面:七个人一组,问的是岗位强相关的一个情

  • 3月宣讲,然后投递简历、测评、英语口语测评、群面、技术面、业务主管面,已经全部结束,全绿泡池子中。 写面经分享给大家,积累好运,希望顺利入职! 测评方面,大家统一即可,展现真实的自己,不然会因为前后不一而被测谎测出来的,真实、真诚即可。 英语口语测评,难度不大的,甚至算得上是简单,大家放心做。 群面,一组7、8个人,面试官说了一下流程,自我介绍、读题、讨论、提出结果、和面试官交流。先抛了一个问题给