在我的SQL查询中编写LIMIT子查询

用户名

因此,我有以下查询,该查询可为组织获取活跃的竞赛,但也旨在获取牵头的用户-每获取一个竞赛。

该查询当前以获取比赛的方式起作用,但是当前它获取所有用户,并且我想使用下面显示的SUM(activity_weight)对所获取的用户限制1。

结果是这样的(删除了一些结果以便于查看),就我而言,我只想获取John和Sally,因为他们是比赛的负责人。

competitionId  compName  start_date  end_date  name  totalPoints
------------------------------------------------------------
123           First Comp   13-09-09  13-10-09  John    100
123           First Comp   13-09-09  13-10-09  Bob     50
431           Second Comp  13-05-04  13-10-05  Sally   500
431           Second Comp  13-05-04  13-10-05  Jessica 50

我了解我必须使用某种形式的子查询来使用LIMIT,但在确定其语法时遇到了问题。

任何帮助深表感谢!谢谢

  SELECT c.competitionId, c.name, c.start_date, c.end_date, a.userid, u.name, 
  u.profilePic , 
  SUM(activity_weight) AS totalPoints

  FROM activity_entries a INNER JOIN users1 u ON u.id = a.userid 
  INNER JOIN competitions c  ON c.competitionId = a.competitionId

  WHERE c.organisationId = '$organisation' AND c.start_date < now() AND c.end_date > now()  
  GROUP BY a.userid, c.competitionId ORDER BY c.id DESC, totalPoints DESC
阿德里安

试试这个查询

select * from
(select 
@rn:=if(@prv=competitionId  , @rn+1, 1) as rId,
@prv:=competitionId  as competitionId  ,
totalPoints,
your_other_columns
from (select * from ...)subquery
join
(select @prv:=0, @rn:=0)tmp
order by 
competitionId  , totalPoints desc) a
-- only top 2 ordered by points for every competition
where rid<=2

output:
rID  competitionId  compName  start_date  end_date  name  totalPoints
------------------------------------------------------------
 1      123           First Comp   13-09-09  13-10-09  John    100
 2      123           First Comp   13-09-09  13-10-09  Bob     50
 1      431           Second Comp  13-05-04  13-10-05  Sally   500
 2      431           Second Comp  13-05-04  13-10-05  Jessica 50

将最后一部分更改where rid<=1为选择顶部1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编写Sql子查询

来自分类Dev

查询中的SQL子查询

来自分类Dev

LIMIT中的MYSQL子查询

来自分类Dev

在LINQ中编写SQL查询

来自分类Dev

在Zend中编写SQL查询

来自分类Dev

在SQL查询中编写条件

来自分类Dev

如何在 Codeigniter 中编写此子查询 Select AVG with Limit

来自分类Dev

如何编写以下涉及子查询的SQL查询

来自分类Dev

在xml.exist()中编写子查询

来自分类Dev

如何在mysql中编写子查询

来自分类Dev

如何在 Laravel 查询构建器中编写子查询

来自分类Dev

在SQL中查询子查询结果

来自分类Dev

替换SQL查询中的子查询

来自分类Dev

在Docctrine中具有LIMIT的子查询

来自分类Dev

在Docctrine中具有LIMIT的子查询

来自分类Dev

Mariadb 子查询中 LIMIT 的行为

来自分类Dev

子查询中的SQL Select

来自分类Dev

如何在cakephp中编写SQL查询?

来自分类Dev

在Cakephp find方法中编写SQL查询

来自分类Dev

在R中编写冗长的SQL查询

来自分类Dev

在SQL查询中编写提取函数

来自分类Dev

如何在sql中编写更新查询?

来自分类Dev

如何在 SQL 中编写搜索查询

来自分类Dev

如何在 sql 中编写此查询?

来自分类Dev

使用 $_SESSION 中的数据编写 SQL 查询

来自分类Dev

SQL 查询到 LINQ 如何在 linq 中编写查询

来自分类Dev

如何编写此查询以在 Sql Server 中获得更好的性能?删除子字符串行

来自分类Dev

如何编写SQL查询

来自分类Dev

编写SQL查询