相当于 MySQL $i++

标签 mysql sql sequence

我正在使用的查询:

SELECT COUNT(*),
    SUM(amount) AS amount,
    FROM_UNIXTIME(added, '%W (%e/%m)') AS daily
FROM affiliates_earnings
WHERE added >= '1319074836'
    AND added <= '1319679636'
GROUP BY daily

输出:

+----------+--------+-------------------+
| COUNT(*) | amount | daily             |
+----------+--------+-------------------+
|        1 |    195 | Tuesday (25/10)   |
|        4 |    470 | Wednesday (26/10) |
+----------+--------+-------------------+

我想展示的内容:

+-------+----------+--------+-------------------+
| i     |COUNT(*)  | amount | daily             |
+-------+----------+--------+-------------------+
| 1     |        1 |    195 | Tuesday (25/10)   |
| 2     |        4 |    470 | Wednesday (26/10) |
+-------+----------+--------+-------------------+

本质上,i 将是序号(即 1,2,3,4,5,6...)。

我将如何完成这个?

最佳答案

没有 ROW_NUMBER(),你可以伪造它 per this answerthis one :

  SELECT @i := @i + 1 AS i, COUNT(*), ...
    FROM affiliates_earnings
    JOIN (SELECT @i := 0) dummy
   WHERE ...
GROUP BY ...;

关于相当于 MySQL $i++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910989/

相关文章:

PHP:星级评定系统的概念?

sql - SQL Server 如何处理非聚集索引中的包含列?

sql - 重新排序有序列表

ios - 一次使用 SQL for iOS 应用程序和网页

f# - 如何尝试在无限有序序列中查找元素?

php - 如果不存在并从数据库获取正确的值

java - 从 Canvas 元素查询 MySQL 数据库?

java - 在java中从JDBC连接到MySql

sql - 创建字母数字序列

c++ - 使用我的代码加速序列的生成