问题描述
我有一个查询,我想在其中按排名(rn)列分组并显示销售,订单等的结果。
SELECT month,sku_id,case when rn<=1000 then 1
when rn<=2000 then 2
else 3 end as rn
这里的问题是,前1000个sku标记为rn 1,只有下一个1000 skus标记为rn 2,但是我希望前1000个sku也被视为rn。我了解在case表达式中不可能做到这一点,对此有任何解决方法吗?
解决方法
您的方法应如下:
使用@db_session
def load_data(self):
result = db.execute("""SELECT * FROM Product""")
self.ui.tableWidget.setRowCount(0)
for row_number,row_data in enumerate(result):
self.ui.tableWidget.insertRow(row_number)
for column_number,data in enumerate(row_data):
self.ui.tableWidget.setItem(row_number,column_number,QTableWidgetItem(str(data)))
为所有记录赋予唯一编号,然后使用row_number()
语句:
case