【问题标题】:Select value where most values exist of SQL [closed]选择SQL中存在大多数值的值[关闭]
【发布时间】:2016-10-19 18:31:00
【问题描述】:

我有一个用户表,其中每条记录都有一个标签。我想选择用户表中出现最多的标签。例如:

  1. 用户名红
  2. 用户名红
  3. 用户名蓝色
  4. 用户名蓝色
  5. 用户名蓝色

结果必须是一个数组,其中包含:蓝色、红色,因为标签蓝色在表格中出现的次数多于红色。我怎样才能得到这个结果?

【问题讨论】:

  • @Fred-ii- 我认为不应该发布 db 架构,结果需要存储在 php 数组中。
  • “错误:'字段列表'中的未知列'标签'” - 您看到 Gordon 使用select label 的回答是基于您在问题中写的:“因为蓝色标签在表格中出现的次数更多”。然后,缺少 CI/PHP 代码会使人们更难为您提供一天中的正确时间。
  • @Fred-ii- 是的,这也是我的数据库表结构。我有标签(蓝色、红色等)和用户名。
  • 我不确定 Gordon 是否了解 CI,但我知道他的 SQL 技能无可挑剔。

标签: php mysql sql codeigniter


【解决方案1】:

您可以使用group bylimit

select label
from t
group by username
order by count(*) desc
limit 1;

这个值在统计中有一个名字。它被称为“模式”。

【讨论】:

  • 错误:“字段列表”中的未知列“标签”
  • @P.Yntema 你说“每条记录都有一个标签”。包含标签的列的名称是什么?在查询中使用它。
  • 不应该是group by label,因为我们要计算具有相同标签的用户数吗?
  • 不小心混淆了标签和用户名。 @Barmar
猜你喜欢
  • 2013-10-11
  • 2022-09-23
  • 1970-01-01
  • 2018-06-18
  • 2017-09-04
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多