我需要使用LIMIT
.
SELECT SUM(CRC32(column)) FROM table LIMIT 0, 100;
但是,返回的值是整个表的校验和。为什么会这样?如何使用 LIMIT 仅获取特定行数的校验和?
以下作品:
SELECT SUM(CRC32(column)) FROM table WHERE id > 0 AND id < 101;
但我不想使用这种方法,因为 auto_increment 值可能会发生跳跃。
我需要使用LIMIT
.
SELECT SUM(CRC32(column)) FROM table LIMIT 0, 100;
但是,返回的值是整个表的校验和。为什么会这样?如何使用 LIMIT 仅获取特定行数的校验和?
以下作品:
SELECT SUM(CRC32(column)) FROM table WHERE id > 0 AND id < 101;
但我不想使用这种方法,因为 auto_increment 值可能会发生跳跃。
为什么会这样?
LIMIT
在聚合函数之后应用。
如果不使用GROUP BY
,SUM
则聚合整个表,只留下一条记录,该记录位于LIMIT
.
用这个:
SELECT SUM(CRC32(column))
FROM (
SELECT column
FROM mytable
ORDER BY
id
LIMIT 100
) q
你可以做
SELECT SUM(CRC32(column)) FROM
(SELECT column FROM table LIMIT 0, 100) AS tmp;