Mysql 找到行业前30%的人';过去12个月通过SQL实现的收入
我有一张名为revenue的桌子, 列有收入和月份以及行业类别和行业姓氏 如何发现过去12个月的收入处于行业前30%的位置, 我需要在同一行业类别中排名前30%Mysql 找到行业前30%的人';过去12个月通过SQL实现的收入,mysql,sql,Mysql,Sql,我有一张名为revenue的桌子, 列有收入和月份以及行业类别和行业姓氏 如何发现过去12个月的收入处于行业前30%的位置, 我需要在同一行业类别中排名前30% industry surname revenue month industry category A $2000 2020/01 Agriculture B $4000 2020/09
industry surname revenue month industry category
A $2000 2020/01 Agriculture
B $4000 2020/09 Industrial
C $9900 2020/05 Agriculture
D $6000 2020/09 Industrial
A $2000 2020/02 Agriculture
B $3500 2020/08 Industrial
A $1000 2020/05 Agriculture
A $7000 2020/08 Agriculture
A $5000 2020/12 Agriculture
行业可能是A~Z,月份可能是2020/01~2020/12此查询肯定会对您有所帮助
SELECT A.*, P.30_PERCENT_REVENUE FROM STACK_USER.revenue AS A
JOIN
(SELECT TRIM(B.industry_category) AS industry_category, (((SELECT SUM(REVENUE) FROM STACK_USER.revenue WHERE industry_category=B.industry_category)/100) *30)
AS 30_PERCENT_REVENUE FROM STACK_USER.revenue AS B GROUP BY B.industry_category AND MONTH(DATE)>=MONTH(SYSDATE()) AND YEAR(DATE)>=YEAR(SYSDATE())-1) AS P
ON TRIM(A.industry_category)=P.industry_category AND A.revenue>=P.30_PERCENT_REVENUE;
我被你的问题弄糊涂了,因为这个问题不太清楚
所以这里我理解的是,你必须计算过去12个月的所有类别收入(30%)
而(行业姓氏)的收入比过去12个月高出30%的类别收入,因此这将仅给出该结果,但
在这里,我将日期用作完整日期,下面是创建表的脚本
CREATE TABLE STACK_USER.REVENUE
(
INDUSTRY_SURNAME VARCHAR(100),
REVENUE FLOAT, DATE DATE,
INDUSTRY_CATEGORY VARCHAR(100)
);
并插入此记录,下面执行的操作是插入脚本
INSERT INTO REVENUE (INDUSTRY_SURNAME, REVENUE, DATE, INDUSTRY_CATEGORY) VALUES
('A' ,2000,'2020/01/01' ,'Agriculture'),
('B' ,4000,'2020/09/01','Industrial'),
('C',9900,'2020/05/01','Agriculture'),
('D',6000,'2020/09/01','Industrial'),
('A' ,2000,'2020/02/01','Agriculture'),
('B' ,3500,'2020/08/01','Industrial'),
('A' ,1000,'2020/05/01','Agriculture'),
('A' ,7000,'2020/08/01' ,'Agriculture'),
('A' ,5000,'2020/12/01','Agriculture');
我希望你会喜欢我的辛勤工作,并很高兴回答你的问题
如果我满足了您的要求,那么请跟我一起投票,我将非常高兴请提供样本数据和期望的结果。也许db/SQL提琴会有所帮助。请阅读。特别是“在发布任何代码之前介绍问题”。您(当前)未显示您试图解决此问题的方法。请阅读。它提供了有关如何以表格形式显示信息的所有查找详细信息。另外,请在列表中添加标题。您应该创建Als,其中包括所需的输出。可能进一步的建议根本不会被注意。对不起,没有详细解释,谢谢您的回答,这对我很有帮助!这与您的预期完全相同,但如果我所寻找的是每个行业收入的前30%,例如,如果有100家农业公司,并且需要收入更高的前30家公司,那么该如何更改查询?您的要求我不清楚,请详细说明