如果项目已排序,我可以运行select语句并获取行号吗?
我有这样一张桌子:
mysql> describe orders;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| orderID | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| itemID | bigint(20) unsigned | NO | | NULL | |
+-------------+---------------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
然后我可以运行此查询以按ID获取订单数量:
SELECT itemID, COUNT(*) as ordercount
FROM orders
GROUP BY itemID ORDER BY ordercount DESC;
Run Code Online (Sandbox Code Playgroud)
这给了我itemID表中每个的计数如下:
+--------+------------+
| itemID | ordercount |
+--------+------------+
| 388 | 3 |
| 234 | …Run Code Online (Sandbox Code Playgroud) 我需要找出客户的排名.在这里,我为我的要求添加了相应的ANSI标准SQL查询.请帮我转换为MySQL.
SELECT RANK() OVER (PARTITION BY Gender ORDER BY Age) AS [Partition by Gender],
FirstName,
Age,
Gender
FROM Person
Run Code Online (Sandbox Code Playgroud)
有没有找到MySQL排名的函数?
我正在将我的所有SQL Server查询转换为MySQL,并且我的查询WITH都失败了.这是一个例子:
WITH t1 AS
(
SELECT article.*, userinfo.*, category.*
FROM question
INNER JOIN userinfo ON userinfo.user_userid = article.article_ownerid
INNER JOIN category ON article.article_categoryid = category.catid
WHERE article.article_isdeleted = 0
)
SELECT t1.*
FROM t1
ORDER BY t1.article_date DESC
LIMIT 1, 3
Run Code Online (Sandbox Code Playgroud) mysql common-table-expression with-clause subquery-factoring mysql-8.0
使用以下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表中的重复行它对我来说工作正常,但问题是它不允许我选择该查询中的所有字段,只是让我选择我用作不同的字段名称,lemme写入查询更好的下划线
mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")
mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")
Run Code Online (Sandbox Code Playgroud)
第一个工作正常
现在,当我试图选择所有字段时,我最终会出现错误
我试图选择最新的重复项,让我们说,ticket_id 127在行ID 7,8,9上是3次,所以我想选择一次最新的条目,在这种情况下为9,这适用于所有其余的ticket_id的
不知道谢谢
我有一个数据库视图,产生一个没有真正主键的结果集.我想使用Hibernate/Persistence将此结果集映射到Java对象.当然,因为没有PK,我无法用任何字段装饰@Id.
在部署时,Hibernate抱怨失踪@Id.我该如何解决这个问题?
我有一个项目数据库.每个项目都使用类别表中的类别ID进行分类.我正在尝试创建一个列出每个类别的页面,在每个类别下面我想要显示该类别中的4个最新项目.
例如:
宠物用品
img1
img2
img3
img4
Run Code Online (Sandbox Code Playgroud)
宠物食品
img1
img2
img3
img4
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过查询每个类别的数据库轻松解决这个问题,如下所示:
SELECT id FROM category
然后迭代该数据并查询每个类别的数据库以获取最新的项目:
SELECT image FROM item where category_id = :category_id ORDER BY date_listed DESC LIMIT 4
我想弄清楚的是,如果我可以使用1个查询并获取所有数据.我有33个类别,所以我想也许这有助于减少对数据库的调用次数.
任何人都知道这是否可行?或者,如果33次通话不是那么大,我应该这么简单.
我想定义ROW_NUMBER()as 的开头3258170而不是1.
我正在使用以下SQL查询
SELECT ROW_NUMBER() over(order by (select 3258170)) as 'idd'.
Run Code Online (Sandbox Code Playgroud)
但是,上述查询无效.当我说不工作时,我的意思是它的执行,但它不是从它开始3258170.有人能帮助我吗?
我想指定行号的原因是我将Rows从一个表插入另一个表.在第一个表中,最后一个记录的行号是3258169,当我插入新记录时,我希望它们具有行号3258170.
有没有可能做这样的事情?
SELECT
@z:=SUM(item),
2*@z
FROM
TableA;
Run Code Online (Sandbox Code Playgroud)
对于第二列,我总是得到NULL.奇怪的是,在做某事的同时
SELECT
@z:=someProcedure(item),
2*@z
FROM
TableA;
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作.为什么?
好的,我有一个这样的表:
ID Signal Station OwnerID
111 -120 Home 1
111 -130 Car 1
111 -135 Work 2
222 -98 Home 2
222 -95 Work 1
222 -103 Work 2
Run Code Online (Sandbox Code Playgroud)
这一切都在同一天.我只需要Query来返回每个ID的最大信号:
ID Signal Station OwnerID
111 -120 Home 1
222 -95 Work 1
Run Code Online (Sandbox Code Playgroud)
我尝试使用MAX()和聚合混乱,每个记录的Station和OwnerID都不同.我需要加入吗?
mysql ×7
sql ×6
row-number ×2
select ×2
sql-server ×2
hibernate ×1
java ×1
max ×1
mysql-8.0 ×1
primary-key ×1
procedure ×1
rank ×1
variables ×1
with-clause ×1