如何在sqlite中选择最小值?
我的表MS_Firestation原始数据如下:如何在sqlite中选择最小值?,sql,sqlite,Sql,Sqlite,我的表MS_Firestation原始数据如下: FireStation FireStationOriginalCode SortNo Micode 1 1 1 1 1 2 1 2 1 3 2 3 1 4
FireStation FireStationOriginalCode SortNo Micode
1 1 1 1
1 2 1 2
1 3 2 3
1 4 1 2
关键词:消防站消防站原始代码
我将查询写为:
SELECT Min(SortNo) as SortNo,m.FireStationOriginalCode
FROM MS_FireStationOriginalMI m
GROUP BY MICode
结果:
SortNo FireStationOriginalCode
2 4
3 3
1 1
为什么??SortNo=2,但获取FireStationOriginalCode=4
我想要SortNo=2和FireStationOriginalCode=2
如何编写sql?您的聚合函数MIN位于错误的列中,SQLite以外的sql引擎将对此进行投诉
SELECT Min(SortNo) as SortNo,m.FireStationOriginalCode
FROM MS_FireStationOriginalMI m
GROUP BY m.FireStationOriginalCode
SELECT SortNo, MIN(m.FireStationOriginalCode)
FROM MS_FireStationOriginalMI m
GROUP BY MICode;
将返回所需的结果
编辑:你的问题我不清楚,但我知道我想我明白了:
SELECT o.SortNo, o.FireStationOriginalCode
FROM MS_FireStationOriginalMI o
INNER JOIN (
SELECT MICode, MIN(SortNo) AS SortNo
FROM MS_FireStationOriginalMI m
GROUP BY MICode
) AS m ON m.MICode=o.MICode AND m.SortNo=o.SortNo;
将返回SortNo,FireStationOriginalCode,该代码与每个微码的最小SortNo匹配 我可以通过sql先得到3行:
SELECT m.*
FROM MS_FireStationOriginalMI m
Where m.FireStationOriginalCode=(Select b.FireStationOriginalCode from MS_FireStationOriginalMI b where m.firestation = b.firestation and m.micode = b.micode order by b.sortno limit 1)
不,FireStationOriginalCode=1,2,3,4,我想得到第1,2行,3@mum如果在一列或多列的Select语句中有聚合函数,select语句中未包含在任何聚合函数中的任何其他列都必须放在GROUP BY子句中。如果GROUP BY m.FireStationOriginalCode将得到4行。@妈妈是的,您应该得到4行,因为您的查询是,请给我所有m.FireStationOriginalCode以及该m.FireStationOriginalCode的最小相关SortNo。如果你想要更少的行,在你的查询中使用WHERE子句来限制返回的行数。我想得到min SORTNOC你能支持我吗,Case SortNo?MICode如何处理这个问题?我不明白你想要什么。我建议你编辑你的问题,并明确说出你假装的内容。
SELECT x.a
, x.b
, x.c
FROM my_table x
JOIN (SELECT b,MIN(c) min_c FROM my_table GROUP BY b) y
ON y.b = x.b
AND y.min_c = x.c
SELECT m.*
FROM MS_FireStationOriginalMI m
Where m.FireStationOriginalCode=(Select b.FireStationOriginalCode from MS_FireStationOriginalMI b where m.firestation = b.firestation and m.micode = b.micode order by b.sortno limit 1)