首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pyDAL中创建有计数(列)>2子句

在pyDAL中创建有计数(列)>2子句
EN

Stack Overflow用户
提问于 2016-11-13 14:32:10
回答 1查看 387关注 0票数 2

我有以下pyDAL表:

代码语言:javascript
复制
market = db.define_table(
    'market',
    Field('name'),
    Field('ask', type='double'),
    Field('timestamp', type='datetime', default=datetime.now)
    )

我想使用表达式语言执行以下SQL:

代码语言:javascript
复制
SELECT * FROM market 
GROUP BY name
ORDER BY timestamp DESCENDING
HAVING COUNT(name) > 1

我知道如何做ORDER BYGROUP BY

代码语言:javascript
复制
db().select(
        db.market.ALL,
        orderby=~db.market.timestamp,
        groupby=db.market.name
    )

但是,即使在阅读了子句之后,我也不知道如何在reading子句中进行计数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-23 15:33:53

count()函数返回一个表达式,该表达式既可用作select查询中的字段,也可用于为查询的having参数构建参数。分组计数手册中的web2py部分有一些关于这个主题的提示。

下面的代码将给出所需的结果。行对象将同时保存market对象及其各自的行计数。

代码语言:javascript
复制
count = db.market.name.count()
rows = db().select(
    db.market.ALL,
    count,
    groupby=db.market.name,
    orderby=~db.market.timestamp,
    having=(count > 2)
    )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40574954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档