相关疑难解决方法(0)

MySQL中的ROW_NUMBER()

MySQL是否有一种很好的方式来复制SQL Server功能ROW_NUMBER()

例如:

SELECT 
    col1, col2, 
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
Run Code Online (Sandbox Code Playgroud)

然后,我可以,例如,添加一个限制intRow为1 的条件,以获得col3(col1, col2)对最高的单行.

mysql sql row-number rank greatest-n-per-group

268
推荐指数
11
解决办法
49万
查看次数

MySQL在ORDER BY中获取行位置

使用以下MySQL表:

+-----------------------------+
+ id INT UNSIGNED             +
+ name VARCHAR(100)           +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

如何排序时,如何选择单个行及其在表中其他行中的位置name ASC.因此,如果表数据如下所示,则按名称排序时:

+-----------------------------+
+ id | name                   +
+-----------------------------+
+  5 | Alpha                  +
+  7 | Beta                   +
+  3 | Delta                  +
+ .....                       +
+  1 | Zed                    +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

如何选择Beta获取该行当前位置的行?我正在寻找的结果集是这样的:

+-----------------------------+
+ id | position | name        +
+-----------------------------+
+  7 |        2 | Beta        +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

我可以做一个简单的SELECT * FROM tbl ORDER BY name ASC然后枚举PHP中的行,但是为一行加载一个可能很大的结果集似乎很浪费.

mysql sql analytic-functions

77
推荐指数
4
解决办法
8万
查看次数

如何将ROW INDEX作为列添加到SQL SELECT查询?

假设我有这样的SQL查询:

SELECT id, name, index(not a real column) FROM users ORDER BY rating DESC
Run Code Online (Sandbox Code Playgroud)

我想将列添加到将代表记录索引的选定列.

例:

 id    name  rating
 1     a     4
 2     b     2
 3     c     8
 4     d     5
Run Code Online (Sandbox Code Playgroud)

对于这个表我想得到:

 id    name  rating  index
 3     c     8       1
 4     d     5       2
 1     a     4       3
 2     b     2       4
Run Code Online (Sandbox Code Playgroud)

mysql sql

15
推荐指数
1
解决办法
5万
查看次数

Mysql - 如何在Order by之后获取行号?

假设我有一个包含以下列的表:


P_ID

用户身份


假设这些列有超过5000条记录.所以我们实际上有用户点.每个用户的点记录都有一个唯一的行.想象一下,每个用户都可以点击某个地方在网站上获得积分.当他们点击时,我用他们得到的积分更新数据库.

所以我们有一张桌子,里面有5000多个有积分的记录,对吧?现在我想通过他们的点(降序)来命令它们,所以如果我运行MySQL查询,那么具有最多点的用户将位于页面的顶部.

我可以通过简单地运行这样的查询来做到这一点:

SELECT `p_id` FROM `point_table` ORDER BY `points` DESC
Run Code Online (Sandbox Code Playgroud)

此查询将按点按降序向我提供所有记录.

好的,这里我的问题来了,现在(当订购时)我想向每个用户显示它们实际上是哪个地方.所以我想给每个用户这样的话:"你是5374个用户中的623个".问题是我不能指定"623"号码.

我想运行一个查询,它按顺序对表进行 "搜索"或计算行号,在那里他们的记录是,然后将该值返回给我.

任何人都可以帮我如何为此建立一个查询?这将是一个非常大的帮助.谢谢.

php mysql

7
推荐指数
2
解决办法
1万
查看次数

使用JPA中的自联接从特定行组内检索行号

给定一个rating在MySQL数据库中命名的表.

+-------------+---------------------+------+-----+---------+----------------+
| Field       | Type                | Null | Key | Default | Extra          |
+-------------+---------------------+------+-----+---------+----------------+
| rating_id   | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| prod_id     | bigint(20) unsigned | YES  | MUL | NULL    |                |
| rating_num  | int(10) unsigned    | YES  |     | NULL    |                |
| ip_address  | varchar(45)         | YES  |     | NULL    |                |
| row_version | bigint(20) unsigned | NO   |     | 0       |                | …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa self-join

7
推荐指数
1
解决办法
1343
查看次数

在MYSQL中生成排名的最佳方法是什么?

除了MYSQL中的行数据之外,获得行级别的最佳方法是什么?

例如,假设我有一份学生名单,我想在GPA中排名.我知道我可以通过GPA订购,但是有什么最快的方式让MYSQL在我回来的rowdata中返回等级?

mysql sql

6
推荐指数
2
解决办法
3083
查看次数

如何在MySQL中获得行位置?

首先,我尝试用谷歌搜索,但是只想出了这样的答案: MySQL-在选择时获取行号

我需要的是“通过特定ID获取行位置”。

在上面的链接示例中,我尝试添加“ WHERE CLAUSE”,但是“ rank”的结果始终为1。

因此,如果我的表具有自动递增的id字段,并且没有按照特定的顺序排列(例如,在id 1变为3而不是2之后,因为id 2已从数据库中删除),如何获取例如id 4的位置?

有什么可能的方法,我想要什么?

mysql sql database

3
推荐指数
2
解决办法
7577
查看次数