Mysql 如何按矩阵顺序选择顶差值
我有一张这样的桌子 我想得到每个表中有min responsetime的行 我尝试了以下查询:Mysql 如何按矩阵顺序选择顶差值,mysql,sql,Mysql,Sql,我有一张这样的桌子 我想得到每个表中有min responsetime的行 我尝试了以下查询: select tablename, index1, index2, min(responsetime) from tableconf group by tablename order by responsetime asc 但它没有给我想要的 我想要的输出是 +------------------+------------------+---
select tablename,
index1,
index2,
min(responsetime)
from tableconf
group by tablename
order by responsetime asc
但它没有给我想要的
我想要的输出是
+------------------+------------------+--------+--------------+
| tablename | index1 | index2 | responsetime |
+------------------+------------------+--------+--------------+
| salesorderheader | TotalDue | NULL | 6.1555 |
| salesterritory | Name | NULL | 11.66667 |
| store | BusinessEntityId | Name | 3.6222 |
| previous | previous | NULL | 5.03333 |
| NONE | NONE | NULL | 5.6 |
+------------------+------------------+--------+--------------+
我应该使用什么查询来获取我想要的输出(根据前面的答案编辑)
我不知道是否所有SQL语法都接受逗号分隔的where参数。另一个基于投票率最高的答案的选项是使用连接:
select *
from tableconf t
inner join (
select tablename, min(responsetime) min_rt
from tableconf t2
group by tablename
) t3 on t.tablename = t2.tablename and t.responsetime = t2.min_rt
选择每个表名的最小日期。对这些行使用
IN
子句来获取行:
select *
from tableconf
where (tablename, responsetime) in
(
select tablename, min(responsetime)
from tableconf
group by tablename
);
由于索引值不同,这将导致组中出现重复。我尝试过这种方法,但它给了我不止一行具有tablename值“store”的行。您如何决定为分组选择什么
index1
和index2
值?@Siyual:这是每个表的最小响应时间的整个记录名字。@ThorstenKettner啊,误读了要求。我明白了。你的输出是多少?不想要的区别是什么?谢谢,这是工作!,但是如何将具有相同最小响应时间的表名的值限制为一行呢?我不理解这个问题。