求MySql的Sql语句,通过自己的ID查询自己的积分在所有积分中的排名
最后返回个数字就行,就是排名的名次求大神们帮忙解决一下表名是user,有ID、Name和pointsMySql数据库。。。要是换成Hql语句怎么写?最主要的是Hql语句。...
最后返回个数字就行,就是排名的名次
求大神们帮忙解决一下
表名是 user ,有ID 、Name和points
MySql数据库。。。
要是换成Hql语句怎么写?
最主要的是Hql语句。。
谢谢了。。。 展开
求大神们帮忙解决一下
表名是 user ,有ID 、Name和points
MySql数据库。。。
要是换成Hql语句怎么写?
最主要的是Hql语句。。
谢谢了。。。 展开
2013-01-28
展开全部
HQL 不会。
只有 SQL 语句的例子。
你参考一下看看, 不知道能不能修改了。
MySQL 不直接支持 ROWNUM 函数。
需要用替代方法。
SELECT
@rownum:=@rownum+1 AS NO,
student_name,
AllGrade
FROM
(SELECT @rownum:=0) r,
(SELECT
student_name,
SUM(grade) AS AllGrade
FROM
test_course
GROUP BY
student_name
) SubQuery
ORDER BY
AllGrade DESC;
+------+--------------+----------+
| NO | student_name | AllGrade |
+------+--------------+----------+
| 1 | 甲 | 185 |
| 2 | 奎 | 185 |
| 3 | 壬 | 165 |
| 4 | 乙 | 165 |
| 5 | 丙 | 145 |
| 6 | 辛 | 140 |
| 7 | 丁 | 125 |
| 8 | 庚 | 120 |
| 9 | 戊 | 105 |
| 10 | 己 | 100 |
+------+--------------+----------+
10 rows in set (0.00 sec)
上面这个 NO 就是 排名
只有 SQL 语句的例子。
你参考一下看看, 不知道能不能修改了。
MySQL 不直接支持 ROWNUM 函数。
需要用替代方法。
SELECT
@rownum:=@rownum+1 AS NO,
student_name,
AllGrade
FROM
(SELECT @rownum:=0) r,
(SELECT
student_name,
SUM(grade) AS AllGrade
FROM
test_course
GROUP BY
student_name
) SubQuery
ORDER BY
AllGrade DESC;
+------+--------------+----------+
| NO | student_name | AllGrade |
+------+--------------+----------+
| 1 | 甲 | 185 |
| 2 | 奎 | 185 |
| 3 | 壬 | 165 |
| 4 | 乙 | 165 |
| 5 | 丙 | 145 |
| 6 | 辛 | 140 |
| 7 | 丁 | 125 |
| 8 | 庚 | 120 |
| 9 | 戊 | 105 |
| 10 | 己 | 100 |
+------+--------------+----------+
10 rows in set (0.00 sec)
上面这个 NO 就是 排名
展开全部
HQL
select count(a.id) from user a where a.points>(select b.points from user b where b.id=自己的ID)
select count(a.id) from user a where a.points>(select b.points from user b where b.id=自己的ID)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一定要用hql吗?
追问
是啊 ,我也在纠结呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询