我有一组跟随名义结果的记录。有多次出现重复计数列中的数字。 '计算'来自char_length(text_column)。我想抓住每个这样的分组中的第一条记录。我该怎么做呢?
我查看了char_length()文档并搜索了已完成此操作的示例,但无法找到任何内容。
select distinct(char_length(text_column)), text_column from table
....尽可能接近 - 这显然并不接近 - 因为我已经能够得到结果。
=======+============================
count + text_column
=======+============================
2139 + some text entry
-------+----------------------------
3000 + another sentence here
-------+----------------------------
3000 + more text in this sentence
-------+----------------------------
3000 + still more text here
-------+----------------------------
谢谢你, BW
答案 0 :(得分:1)
除非列指定排序,否则不存在“first”之类的内容。但是,您可以使用group by
从 indeterminate 行获取值:
select char_length(text_column), text_column
from table
group by char_length(text_column);
我不喜欢使用group by
的MySQL扩展,其中text_column
允许select
,而group by
不允许min()
。但是,因为它是一个很长的列,所以让MySQL选择值而不是使用实际的聚合函数(例如max()
或{{1}})可能更有效。