我想进行如下查询:
从somefield
name
订单选择*
顺序将按字母顺序排列,我希望字母表中的每个字母仅显示5次点击。这可能与查询本身有关,还是我应该使用php来对字母表中的每个字母进行查询?
以这种方式返回的行数最多只能是5 x 26行。
答案 0 :(得分:1)
大多数数据库都支持ANSI标准窗口函数。为此,您可以使用row_number()
:
select t
from (select t.*,
row_number() over (partition by left(name, 1) order by name) as seqnum
from t
) t
where seqnum <= 5;
注意:并非所有数据库都支持left()
,您可能需要substr(name, 1, 1)
或substring(name, 1, 1)
。