mySQL/ MariaDB 使用变量计算

mySQL/ MariaDB Calculate with Variables

提问人:SirSmokealot 提问时间:11/28/2022 最后编辑:SirSmokealot 更新时间:11/28/2022 访问量:24

问:

我想让DB计算出最受欢迎的书。我的数据库查询有效,但是不正确。显然是因为排序为时已晚。如何针对mariaDB 10.3进行改进?calculated_pointscounter

获得 10 分的预订应获得第 1 名。

获得 8 分的预订应获得第 2 名。

获得 4 分的预订应获得第 3 名。

SET @var = 0;
SELECT 
   (@var:=@var+1) AS counter, 
   (row1 * row2 / 4) as calculated_points 
from bookz 
WHERE kat = '6' 
  AND pubdate > DATE_SUB(CURDATE(), INTERVAL 12 MONTH) 
  AND pub = '1' 
  AND ratings > '1' 
  AND productType = 'pbook' 
GROUP BY title 
ORDER BY calculated_points desc 
LIMIT 256
MySQL 变量 计数 MariaDB

评论

2赞 Luuk 11/28/2022
哪个版本的 MySQL?因为 8+ 有 ROW_NUMBERRANK,这对此很有帮助。(还有一些示例数据,所需的输出会很好)
1赞 SirSmokealot 11/28/2022
是的,以下命令对我来说是新的,在 Maria 10.3 上非常适合我:选择 ROW_NUMBER() OVER ( ORDER BY calculated_points desc) 作为放置位置,....Thanxx

答: 暂无答案