首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite:不同表上的两个不同计数

SQLite:不同表上的两个不同计数
EN

Stack Overflow用户
提问于 2017-07-25 19:00:44
回答 2查看 40关注 0票数 0

我非常肯定你们有一个简单而快速的解决方案来解决我的问题,但是我的SQL技能有限,我自己也搞不清楚。

所以我得到的是这样的:

新闻组:名称(主键)

文章:Id(主键)日期:日期

我想知道的是一个查询,它给我每个新闻组的名称,以及未读文章的计数,所有文章的计数和最近一篇文章的日期……这是否有可能在单个Select-Query中实现?

提前感谢你们!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-25 21:32:25

您可以简单地使用适当的聚合函数:

代码语言:javascript
复制
SELECT newsgroupName,
       SUM(NOT read) AS countUnread,
       COUNT(*)      AS countAll,
       MAX(date)     AS mostRecentDate
FROM Article
GROUP BY newsgroupName;
票数 2
EN

Stack Overflow用户

发布于 2017-07-25 19:05:54

我猜大概是这样的:

代码语言:javascript
复制
SELECT name, COUNT(countUnread) AS countUnread, COUNT(countRead) AS countRead, MAX(mostRecentDateUnread) AS mostRecentDateUnread, MAX(mostRecentDateRead) AS mostRecentDateRead FROM (
    SELECT newsgroupName AS name, COUNT(newsgroupName) AS countUnread, 0 AS countRead, MAX(date) AS mostRecentDateUnread, NULL AS mostRecentDateRead
    FROM Article
    WHERE read = 0
    GROUP BY newsgroupName, read

    UNION ALL

    SELECT newsgroupName AS name, 0 AS countUnread, COUNT(newsgroupName) AS countRead, NULL AS mostRecentDateUnread, MAX(date) AS mostRecentDateRead
    FROM Article
    WHERE read = 1
    GROUP BY newsgroupName, read
)
GROUP BY name

我没有尝试过,但理论上通过一些修复,它可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45301352

复制
相关文章

相似问题

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