在MySQL中,如何限制查询结果占结果总数的百分比?
下面的mysql问题只返回前10行。我怎样才能将它们限制在总数的10%以内在MySQL中,如何限制查询结果占结果总数的百分比?,mysql,sql,sql-limit,Mysql,Sql,Sql Limit,下面的mysql问题只返回前10行。我怎样才能将它们限制在总数的10%以内 SELECT page, poso, diff FROM (SELECT page, Count(*) AS poso, ( Sum(Date(timestamp) = Curdate()) - Sum( Date(timestamp) = Date_sub(Curdate(),
SELECT page,
poso,
diff
FROM (SELECT page,
Count(*) AS poso,
( Sum(Date(timestamp) = Curdate()) - Sum(
Date(timestamp) = Date_sub(Curdate(),
INTERVAL 1 day)) )
diff
FROM `behaviour`
WHERE Date(timestamp) >= Date_sub(Curdate(), INTERVAL 1 day)
GROUP BY page
ORDER BY ( Sum(Date(timestamp) = Curdate()) - Sum(
Date(timestamp) = Date_sub(Curdate(),
INTERVAL 1 day))
) DESC
LIMIT 10) AS u
ORDER BY diff DESC
改编自:
此处演示:可能重复谢谢!我已经接受了你的答案,我会在14小时内给你奖励
SELECT page,
poso,
diff
FROM (
SELECT *,
@counter := @counter + 1 AS counter
FROM (select @counter:=0) AS initvar,
(SELECT page,
Count(*) AS poso,
( Sum(Date(timestamp) = Curdate()) - Sum(
Date(timestamp) = Date_sub(Curdate(),
INTERVAL 1 day)) )
diff
FROM `behaviour`
WHERE Date(timestamp) >= Date_sub(Curdate(), INTERVAL 1 day)
GROUP BY page
ORDER BY ( Sum(Date(timestamp) = Curdate()) - Sum(
Date(timestamp) = Date_sub(Curdate(),
INTERVAL 1 day))
) DESC) AS u
) AS v
WHERE counter <= 10/100 * @counter
ORDER BY diff DESC;