当前位置: 首页 > 知识库问答 >
问题:

从外部查询中选择未分组列中的子查询

楚嘉玉
2023-03-14

我必须计算ARPU(收入/#用户),但我得到了这个错误:

子查询使用外部查询第7行的未分组列“usage_records.date”:WHERE created_at<=date_trunc('day',usage_records.d...^)

    null
SELECT 
    date_trunc('day', usage_records.date) AS day,
    SUM(usage_records.quantity_eur) as Revenue,
    ( SELECT 
        COUNT(users.id)
        FROM users 
        WHERE created_at <= date_trunc('day', usage_records.date)
    ) as users_count
    
FROM users 
INNER JOIN ownerships ON (ownerships.user_id = users.id) 
INNER JOIN profiles ON (profiles.id = ownerships.profile_id)
INNER JOIN usage_records ON (usage_records.profile_id = profiles.id)

GROUP BY DAY
ORDER BY DAY asc

共有1个答案

卓新知
2023-03-14

您的子查询(对每一行执行)包含一个列,该列在group by中没有提到,但在聚合中没有涉及。这会产生错误,但您也可以对此值使用contional来重构查询

SELECT 
    date_trunc('day', usage_records.date) AS day,
    SUM(usage_records.quantity_eur) as Revenue,
    sum( case when  created_at <= date_trunc('day', usage_records.date) 
        AND users.id is not null
        then 1 else 0 end ) users_count
    
FROM users 
INNER JOIN ownerships ON (ownerships.user_id = users.id) 
INNER JOIN profiles ON (profiles.id = ownerships.profile_id)
INNER JOIN usage_records ON (usage_records.profile_id = profiles.id)

GROUP BY DAY
ORDER BY DAY asc
 类似资料:
  • 我刚开始冬眠。我有两张桌子,有一对多的关系。有两个表格: 这是一个父类,它与图像表有一对多关系 现在我想使用父类的id(即:pashminaId)从类中选择一个 如: 选择IMAGE_NAMETBL_IMAGEPASHMINA_ID='some_digit'; 我怎么能在图像类中传递pashminaId,因为没有它只有一个父类的对象创建。 那么,我如何在Hibernate中实现这一点? 谢谢!希望

  • 问题内容: 我有以下查询,该查询通常可以正常工作,并且应该返回涵盖定义时间范围的所有行(如果没有绝对匹配,则采用最接近的前一行和后一行-在http://www.orafaq.com/node/1834中概述) 但是希望通过引用外部选择来减少两个表的子选择,但是显然它不喜欢它 有没有一种方法可以使查询不选择三个表? 问题答案: 您可以通过联接执行以下操作: 我不是MySQL专家,因此如果需要一些语法

  • 问题内容: 是否可以在使用MySQL的子查询中引用外部查询?我知道在 某些 情况下这是可能的: 但是我想知道这样的事情是否可以工作: 我知道我可以使用或通过将外部子句拉入子查询来实现相同目的,但是我需要这样做来自动生成SQL,并且由于各种其他原因,不能使用任何一种替代方法。 更新 :对不起,这个问题引起了一些混乱:第一个查询只是一个可行的示例,以演示我 不需要的 东西。 更新2 :我需要两个u.i

  • 问题内容: 我在数据库字段中的序列化数组中存储项目列表(我在使用PHP / MySQL)。 我想要一个查询,该查询将选择所有包含数组中这些项目之一的记录。 像这样: 希望这是有道理的。 任何想法将不胜感激。 谢谢 问题答案: 因此,您是要使用MySQL搜索已通过serialize命令进行序列化并存储在数据库字段中的PHP数组吗?我的第一个反应是:天哪。我的第二个反应是:为什么?在 理智 的事情可以

  • 问题内容: 我有一个SQL Server查询,该查询为一个MyBusinessUnit列返回两个值,并返回两个值,例如: 1111 2222 在名为 这两个值也都存在于DB2数据库的列中。 我想要的是从DB2表中选择所有匹配的记录-而且,没有,跨数据库查询不起作用。 因此,这是我的DB2数据库: 但是Query2仅返回仅一个值的匹配记录(1111)。 因此,需要其他一些方法。我试图创建一个字符串,

  • 问题内容: 如何在按部分分组的查询中使用子查询? 我使用SQL Server 2008 R2和Delphi 2010 我收到此错误: 像这个查询: 按t1.sen分组 问题答案: 这是真实的方式