当前位置: 首页 > 面试题库 >

MYSQL的计数?

闾丘德宇
2023-03-14
问题内容

我有一个像这样的mysql表:

id, visitorid, pageid

当访问者访问该网站时,它将其访问者ID和页面ID存储为一行。

我试图提取恰好X次访问该网站的访问者数量。(用于图表)。因此有多少人只访问一页,有多少人访问了2页…

到目前为止,我有:

SELECT COUNT(visid),visid FROM vislog GROUP BY visid ORDER BY COUNT(visid) DESC

但是我不知道该如何进行计数。

可以作为mysql查询吗?

编辑: 我已经添加了答案。


问题答案:

我可以这样解决:

SELECT cnt, COUNT(cnt) FROM (
    SELECT COUNT(visid) as cnt FROM vislog GROUP BY visid
) x GROUP BY cnt ORDER BY cnt ASC

这一点x很重要。



 类似资料:
  • 问题内容: 我有这张桌子: 电影可以具有多种流派,因此ID并非特定于流派,而是多对多关系。我想要查询以找到正好具有4种流派的电影总数。我目前的查询是 但是,这会返回4而不是总和的列表。如何获得总和而不是清单? 问题答案: 一种方法是使用嵌套查询: 内部查询将获取所有具有完全4种类型的电影,然后外部查询将计算内部查询返回的行数。

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列以显示运行总计: 这可能吗? 问题答案: 也许对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一些数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行中的total变量,否则您将只获得一列NULL值。

  • 问题内容: 这两个查询在具有1000万行的表上运行缓慢。我想知道为什么为什么从mysql保留所有insert,update和delete更新的计数器变得不容易? 有没有办法改善这个查询?我使用了说明,但并没有太大帮助。 问题答案: 正如cherouvim在评论中指出的那样,它取决于存储引擎。 确实会保留表行的计数,并且由于MyISAM支持的唯一锁是表锁,因此可以保持准确。 但是支持事务,因此需要进

  • 表名称包含一列 目标是计算重复次数以得到以下结果 如何做到这一点?

  • 问题内容: 我有这样的桌子 而且我需要创建一个查询,该查询将像这样通过电子邮件计算所有重复项 问题答案: last()子句将选择范围限制为大于1的电子邮件计数,例如重复项。

  • 问题内容: 我刚开始使用SQL并遇到了问题。 在我的数据库中,我目前有两个表,电影院和剧院。我正在尝试在Cinemas表中创建一列“#Theatres#”,该表计算着Cinemas表中具有与Cinemas表中的Cinema相同的CinemaID(外键)的Theaters表中的剧院数量。我将其用作SQL查询: 但是想知道是否有可能在Cinemas表中创建一列,该列会自动执行上述查询并将值插入到每一行