首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复杂的Group By查询(递归?)

复杂的Group By查询(递归?)
EN

Stack Overflow用户
提问于 2010-10-09 13:59:19
回答 1查看 294关注 0票数 0

很抱歉这个标题,但我不知道该怎么称呼它。我使用的是ansi 8.3,使用非ansi查询建议就可以了。

假设这个模式:

代码语言:javascript
复制
TimeEntries
id              - int
entry_date      - date
tracked_seconds - int
project_id      - int

projects
id              - int
name            - string
path            - string

项目是杂乱无章的,我并不关心parent_id等,而是选择了path列,例如:

代码语言:javascript
复制
Renovate Home    - path = renovate-home
- Clean Kitchen  - path = renovate-home/clean-kitchen

我希望查询返回以下内容:

代码语言:javascript
复制
date - project_path - tracked_seconds(this project) - tracked_seconds (total of self and child projects)

按日期分组,每个项目路径多次分组,因此示例数据:

代码语言:javascript
复制
projects
name          path
Funny         funny
- Project     funny/project
-- Is Funny   funny/project/is-funny
Foo           foo
- Bar         foo/bar

如果现在有有趣/项目和foo/ TimeEntries的TimeEntries,我发出以下查询:

代码语言:javascript
复制
SELECT         entry_date, p.path as project_path, sum(tracked_seconds) / 60
FROM           time_entries te
LEFT JOIN      projects p on te.project_id = p.id
GROUP BY       entry_date, p.path

我得到的结果是:

代码语言:javascript
复制
entry_date        project_path           ?sum?
2010-10-01        funny/project          20
2010-10-01        foo/bar                10

我想要的是:

代码语言:javascript
复制
entry_date        project_path           direct_sum     total
2010-10-01        funny                  0              20
2010-10-01        funny/project          20             20 
2010-10-01        foo                    0              10
2010-10-01        foo/bar                10             10
EN

回答 1

Stack Overflow用户

发布于 2010-10-09 14:49:32

这个问题应该会让你更接近你的目标:

代码语言:javascript
复制
SELECT         entry_date, p.path as project_path, p2.path, sum(tracked_seconds) / 60
FROM           time_entries te
LEFT JOIN      projects p on te.project_id = p.id
LEFT JOIN      projects p2 on p2.path LIKE p.path + '/%'
GROUP BY       entry_date, p.path, p2.path
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3895881

复制
相关文章

相似问题

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