当前位置: 首页 > 知识库问答 >
问题:

MySQL-提取最低值

戚弘和
2023-03-14

我的数据库结构包含列:id、name、value、dealer。我想为每个经销商检索具有最低的行。我一直试图把min()group by搞乱,仍然没有解决方案。

共有2个答案

钱睿范
2023-03-14
select id,name,MIN(value) as pkvalue,dealer from TABLENAME 
group by id,name,dealer;

在这里,您将所有行按id、name、dealer分组,然后您将得到min值作为PKVALUE。

宗涵蓄
2023-03-14

解决方案1:

SELECT t1.* FROM your_table t1
JOIN (
  SELECT MIN(value) AS min_value, dealer
  FROM your_table 
  GROUP BY dealer
) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value

解决方案2:

SELECT t1.* FROM your_table t1
LEFT JOIN your_table t2
ON t1.dealer = t2.dealer AND t1.value > t2.value
WHERE t2.value IS NULL

这个问题非常有名,所以在MySQL的手册中有一个专门为此的页面。

选中以下内容:保存某列的分组最大值/最小值的行

 类似资料:
  • 问题内容: 我的数据库结构包含列:。我想检索与最低行的 每一个 。我一直在尝试弄乱and ,仍然-没有解决方案。 问题答案: 解决方案1: 解决方案2: 这个问题非常有名,因此在Mysql的手册中有专门的页面。 请检查以下内容: 行包含某列的分组最大/最小值

  • 我有2个使用的测试查询,但这两个查询都没有正确排序数据。执行以下语句后: 第一个查询 第二次查询 我正在从数据库中获取以下值: 第一个结果 第二个结果 我想要这样的东西 我的数据

  • 问题内容: 我尝试在执行以下命令后获得具有最高/最低编号的行: 这是我的测试数据 为了获得最低的价值,我将使用 现在,id是,但应该是。 我也尝试了加入: 如何根据最低的结果为每个结果获取正确的ID ? 问题答案: 我认为这是您要实现的目标: 输出: ID 价值 姓名 1个 10 第1行 4 5 第2行 在这里,我使用minVal和Name自联接了表。

  • 问题内容: 我有三个mysql表,我想从中提取一些信息,这些表是: 视频-代表带有分数的视频。 标签-包含标签的全局列表。 VideoTags在视频和标签之间创建关联。 我想做的就是找到每个标签的得分最高的视频。有许多具有相同标签的视频,但是我的结果集将具有与标签相同的行数。最终目标是为每个唯一标签(标签是主题加上哈希值)提供最佳视频列表(按得分)。 我的SQL noob尝试实现此目标的方法如下:

  • 我在光标选择查询中有一个计算列。 当我执行这个查询时,它工作得很好: 当我输出时: 我的问题是为什么这个光标不能从select查询中提取以及如何解决这个问题。

  • 问题内容: 在下表中,如何仅根据登录列获取的 最新记录 ,而不是所有3条记录? 问题答案: 使用按ID分组的汇总。这将列出每个最新的。 要获取完整的单个记录,请对仅返回每个ID 的子查询执行。