【问题标题】:Performing a COUNT on the MAX number of occurences对 MAX 出现次数执行 COUNT
【发布时间】:2016-09-14 15:26:58
【问题描述】:

我的情况是 A 人可以在一年中的每个月销售产品 A。根据这些信息,我必须计算出他们在本年度销售最多产品 A 的月份。

如果他们在一月份销售 10 件产品 A,8 月份和 10 月 10 日销售 6 件,我会获取最近一个月(在本例中为 10 月份)的信息。

但是,我想包含某种跟踪器,说明如果当年的当前 MAX 在一年的早些时候被人 A 相等,我想计算发生的次数。如果 A 人在 11 月继续卖出 15 个,柜台应该重新开始。

当前数据 =

EMP         PRODUCT           MONTH         VOLUME
---------------------------------------------------
A            A                 1             10
A            A                 8             6
A            A                 10            10

目标=

EMP         PRODUCT           MAX(VOLUME)    COUNT
---------------------------------------------------
A             A                    10           2

任何有关解决此问题的最有效方法的建议都会很棒!

【问题讨论】:

  • 你有没有尝试过?

标签: sql oracle count max aggregate


【解决方案1】:
CREATE TABLE MY_TABLE (EMP VARCHAR2(10), PRODUCT VARCHAR2(10), MONTH NUMBER, VOLUME NUMBER);

INSERT INTO MY_TABLE VALUES ('A', 'A', 1, 10);
INSERT INTO MY_TABLE VALUES ('A', 'A', 8, 6);
INSERT INTO MY_TABLE VALUES ('A', 'A', 10, 10);

COMMIT;

--EMP         PRODUCT           MONTH         VOLUME
-----------------------------------------------------
--A            A                 1             10
--A            A                 8             6
--A            A                 10            10



SELECT EMP,
       PRODUCT,
       VOLUME,
       MY_COUNT
  FROM (  SELECT EMP,
                 PRODUCT,
                 VOLUME,
                 COUNT (MY_RANK) MY_COUNT,
                 RANK () OVER (PARTITION BY EMP, PRODUCT ORDER BY VOLUME DESC)
                    MY_SECOND_RANK
            FROM (SELECT EMP,
                         PRODUCT,
                         volume,
                         RANK ()
                            OVER (PARTITION BY EMP, PRODUCT
                                  ORDER BY VOLUME DESC, MONTH DESC)
                            MY_RANK
                    FROM MY_TABLE)
        GROUP BY EMP, PRODUCT, VOLUME)
 WHERE MY_SECOND_RANK = 1;

【讨论】:

  • 很高兴我能帮上忙! ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2015-03-28
  • 2011-01-27
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
相关资源
最近更新 更多