我正在尝试使用DBIx :: Class编写以下SQL查询:
SELECT * FROM (SELECT username, DENSE_RANK () OVER (ORDER BY COUNT(username) DESC) FROM myTable GROUP BY username) AS topUsers WHERE username='myUsername';
myTable
只包含两行,一行是用户名,另一行代表用户的成就。子查询应该为每个用户分配一个排名,主查询选择myUser
的排名。
我在将这个问题转换为DBIx :: Class时遇到了一些问题,所以我希望得到一些帮助!
提前谢谢!
答案 0 :(得分:0)
您应该将查询定义为视图。参见here
之后,您可以:
$schema->resultset( 'YourView' )->search
这将生成SQL:
select * from ( <your query here> )