MySql-统计所有会员的最高前10次的积分和

用户需求:

会员的排名是按照最高积分的前10次积分的和进行排序的。

实际现状:

  1. 目前会员的总积分规则为最近1年内的积分之和;
  2. 积分细节表A,存在字段人员ID(PersonalMember_ID)和积分(CompetitionScore_Point)

计划实现:

对表A的PersonalMember、CompetitionScore_Point进行分组查询并去最高积分的前10

实现方法:

select s.PersonalMember_ID, sum(s.CompetitionScore_Point)  
from A s
where 10>(select count(*) from At 
where t.PersonalMember_ID=s.PersonalMember_ID and t.CompetitionScore_Point>s.CompetitionScore_Point)
group by PersonalMember_ID
order by s.PersonalMember_ID, s.CompetitionScore_Point desc;
时间: 2024-11-10 11:52:21

MySql-统计所有会员的最高前10次的积分和的相关文章

MySQL,Oracle,SQL Server——选取前10条——语法差异

前言 今天,用select top 10 * from table;在mysql上报错. 原因 实现选取前10条,不同数据库存在差异. 描述 MySQL select * from table1 limit 10 #具体语法: select * from table1 limit m,n; #从m开始选取n条. SQL Server select top 10 * from table Oracle select * from table where rownum<=10

Linux小技巧之:统计访问web网站的前10个IP

获得访问前10位的IP地址: [[email protected]:~]# cat /var/log/nginx/access.log | awk '{print $1}'|sort|uniq -c | sort -nr | head -10 10299 10.46.170.7 4 218.202.70.147 1 77.72.83.87 1 5.39.217.107 1 185.197.74.234 1 185.197.74.231 原文地址:https://www.cnblogs.com/F

shell 统计nginx访问日志的前10

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10 版权声明:本文为博主原创文章,未经博主允许不得转载.

老男孩教育每日一题-2017年4月5日-统计你的linux系统的history历史记录,得出你最喜欢使用的前10个命令

统计你的linux系统的history历史记录,得出你最喜欢使用的前10个命令 方法一:awk数组方法 [[email protected] ~]# history |awk '{h[$2]++}END{for(key in h)printkey,h[key]}' |sort -rnk2|head awk 279 ll 78 cat 66 cd 41 ls 34 find 32 echo 32 man 30 sed 27 vim 26 #优雅的显示可以加上 |column -t  即可  [[e

统计电影票房排名前10的电影并存入另一个文件

今天看到一个笔试题,是这样的:给定一个文件(m.dat),里面保存了各个电影票房统计,格式如下: <2012>                                索尼                $769.7 <哈利波特与死亡圣器(上)>              华纳兄弟            $952.0 <星球大战>                            二十世纪福克斯      $775.4 <怪物史莱克4>      

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数 from collections import Counter import re with open('a.txt', 'r', encoding='utf-8') as f: txt = f.read() c = Counter(re.split('\W+',txt)) #取出每个单词出现的个数 print(c) ret = c.most_common(10) #取出频率最高的前10个 print(ret) 原

解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据

我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据.好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的动态,而不关心几个月甚至几年前消息,所以后端返回给客户端的数据是不会一次性传递全部内容的(不仅耗费流量,而且还给服务器带来巨大压力). 举个例就说MySQL,它已经给我们提供了相应的语句来支持这一功能,那就是limit关键字.比如我要拉取一个消息表中用户id为1的前10条最新数据,SQL语句如下: s

检查网口流量与前10名流量大IP

此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计每个端口在10秒内的平均流量,基于客户端和服务端端口统计.可以看出哪些端口占流量比较大,对于web服务器,一般是80端口.其它端口受到攻击时,也有可能其它端口流量比较大.所以此功能可以帮助我们端口流量是否正常. 4.统计在10s内占用带宽最大的前10个ip.此项功能可以帮助我们来查出是否有恶意占用带宽的ip. 5.统计连接状态.此项功能可以让我们看出哪些连接状态比较大.如果SYN-RECV状态比较多的话,有可以受

linux分析apache日志获取最多访问的前10个IP

apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个. 以上参数可以略作修改显示更多的数据,比如将tail加上-