如何获取MySQL子查询GROUP BY结果的行号?

时间:2015-06-04 22:16:29

标签: mysql

我对如何将此MySQL查询用作子查询来获取GROUP BY结果的连续数字感到困惑。在GROUP BY执行之前,GROUP BY仍然具有查询的行号,因此row_count为14和1,如下图所示。

SET @row_count:=0;
SELECT @row_count:=@row_count+1 AS row_count,column_id, type
FROM mt_report_filters
WHERE report_id = 2
GROUP BY column_id

MySQL Results

我正在尝试将其构建到子查询中以使用此逻辑获取连续的row_count 1和2,但这是不正确的。

SET @row_number:=0;
SELECT @row_number:=@row_number+1 AS row_number FROM t1, column_id, type
FROM(
    SELECT column_id, type
    FROM mt_report_filters
    WHERE report_id = 2
    GROUP BY column_id
    AS t1)

1 个答案:

答案 0 :(得分:0)

phpMyAdmin给了我错误消息:#1248 - 每个派生表都必须有自己的别名。从那里我有一个想法,我需要从子查询创建的表是别名,所以我只是在最后添加'AS t1'。

SET @row_number:=0;
SELECT @row_number:=@row_number+1 AS row_number, column_id, type 
FROM (
    SELECT column_id, type 
    FROM mt_report_filters
    WHERE report_id = 2
    GROUP BY column_id) AS t1

Row Number