相关疑难解决方法(0)

Where子句中的SQL Row_Number()函数

Row_Number()在where子句中找到了一个用函数回答的问题.当我尝试一个查询时,我收到以下错误:

"消息4108,级别15,状态1,行1窗口函数只能出现在SELECT或ORDER BY子句中."

这是我试过的查询.如果有人知道如何解决这个问题,请告诉我.

SELECT employee_id 
FROM V_EMPLOYEE 
WHERE row_number() OVER ( ORDER BY employee_id ) > 0 
ORDER BY Employee_ID
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server analytic-functions

86
推荐指数
7
解决办法
21万
查看次数

SqlAlchemy上一个/下一个访问者?

有没有办法从SqlAlchemy查询中获取prev/next记录?像这样:

record.id
record.next.id
record.prev.id
Run Code Online (Sandbox Code Playgroud)

我可以自己为每个模型添加prev/next方法,但我想知道是否已经有一些我忽略的自动方式.有问题的Web应用程序是用Pylons编写的.

编辑: 这可能是一个肮脏的黑客,但它的工作原理.我将sqlalchemy Session对象导入到我的模型中并执行了以下操作:

def next(self):
    return Session.query(Blog).filter(Blog.id > self.id).order_by(Blog.id).first()

def prev(self):
    return Session.query(Blog).filter(Blog.id < self.id).order_by(desc(Blog.id)).first()
Run Code Online (Sandbox Code Playgroud)

pylons sqlalchemy

6
推荐指数
1
解决办法
1207
查看次数

不使用子查询的高级分组

这是我拥有的数据样本.

-ID-        -Rank-      -Type-      -Status-    -Amount-
1142474     2       Under Offer Approved    23
1148492     1       Present     Current     56
1148492     2       Under Offer Approved    3
2273605     1       Present     Current     24
Run Code Online (Sandbox Code Playgroud)

如果ID相同,我只想要排名最高的记录.所以查询的最终结果.

-ID-        -Rank-      -Type-      -Status-    -Amount-
1142474     2       Under Offer Approved    23
1148492     1       Present     Current     56
2273605     1       Present     Current     24
Run Code Online (Sandbox Code Playgroud)

现在获取原始数据集是一项昂贵的操作,因此希望按ID进行分组,然后分级,然后再次加入数据集.因此查询需要以另一种方式完成其工作.

干杯安东尼

sql t-sql sql-server

3
推荐指数
1
解决办法
3841
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2

analytic-functions ×1

pylons ×1

sqlalchemy ×1