Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询,获取最近7天内出现最多的前50个名字_Mysql_Sql - Fatal编程技术网

MySQL查询,获取最近7天内出现最多的前50个名字

MySQL查询,获取最近7天内出现最多的前50个名字,mysql,sql,Mysql,Sql,MySQL表很简单: id | name | create_time 每次用户进行操作时,它都会向该表中插入一条记录,如 1 | "do ABC" | 2011-12-05 2 | "do BCD" | 2011-12-05 我想从这张表中找出过去7天内的前50个手术。如何编写SQL?尝试以下方法: SELECT `name`, COUNT(id) as operations FROM myTable WHERE create_time BETWEEN DATE_SUB(NOW(), IN

MySQL表很简单:

id | name | create_time
每次用户进行操作时,它都会向该表中插入一条记录,如

1 | "do ABC" | 2011-12-05

2 | "do BCD" | 2011-12-05

我想从这张表中找出过去7天内的前50个手术。如何编写SQL?

尝试以下方法:

SELECT `name`, COUNT(id) as operations
FROM myTable
WHERE create_time BETWEEN DATE_SUB(NOW(), INTERVAL -7 DAY) AND NOW()
GROUP BY `name` 
ORDER BY COUNT(id) DESC
LIMIT 50;
这将计算每个操作名称的操作数,按计数对结果进行排序,并仅返回50条记录。请注意,这正好是七天的历史,换句话说,如果您在中午运行查询,范围的开始将是7天前的中午


请参见,,

尝试以下方法:

SELECT `name`, COUNT(id) as operations
FROM myTable
WHERE create_time BETWEEN DATE_SUB(NOW(), INTERVAL -7 DAY) AND NOW()
GROUP BY `name` 
ORDER BY COUNT(id) DESC
LIMIT 50;
这将计算每个操作名称的操作数,按计数对结果进行排序,并仅返回50条记录。请注意,这正好是七天的历史,换句话说,如果您在中午运行查询,范围的开始将是7天前的中午

请参阅,,

选择计数(id)、名称
从表名
其中DATE\u SUB(现在(),间隔7天)
选择计数(id)、名称
从表名
其中DATE\u SUB(现在(),间隔7天)
选择*
从'table'开始
其中`create\u time`>=DATE\u SUB(now(),间隔7天)
上限50;
选择*
从'table'开始
其中`create\u time`>=DATE\u SUB(now(),间隔7天)
上限50;

您可以通过此查询获得结果

select id, name, create_time
from tablename
where DATEDIFF(dd,create_time ,NOW())=7
order by create_time
limit 50;

您可以通过此查询获得结果

select id, name, create_time
from tablename
where DATEDIFF(dd,create_time ,NOW())=7
order by create_time
limit 50;

这有一个语法错误,它必须是日期添加(现在(),间隔-7天)和现在()
之间的
,如果是否定的,你最好使用
DATE\u sub
谢谢你,但是Glenn's看起来更好。这有一个语法错误,它必须是日期添加(现在(),间隔-7天)和现在()
既然是负数,您最好使用
date\u sub
谢谢您,但是Glenn's看起来更好。如果表的大小变大,这个SQL查询会变慢吗?可能会变慢。但任何疑问都是如此。如果这成为一个问题,您可以考虑在name&create_time列上添加索引,但您必须权衡这一点与插入的额外成本。如果表大小变大,此SQL查询是否会变慢?可能会。但任何疑问都是如此。如果这成为一个问题,您可以考虑在name&create\u time列上添加索引,但您必须权衡插入的额外成本。