【问题标题】:SQL combine COUNT and AVG query with SELECTSQL 将 COUNT 和 AVG 查询与 SELECT 结合起来
【发布时间】:2011-11-17 01:39:34
【问题描述】:

我需要获取特定用户的平均评分和评分总数,然后还要选择所有单个评分(rating_value、rating_text、creator):

$rating_query = mysql_query("SELECT COUNT(1) as rating_count 
,AVG(rating_value), rating_value, rating_text, creator
FROM user_rating WHERE rated_user = $user_id");

此查询将返回每行的 COUNT(1) 结果和 AVG(rating_value),但我只需要这些值一次。

有没有办法在不进行 2 次单独查询的情况下做到这一点?

【问题讨论】:

  • Is there any way to do this without making 2 separate queries?
  • 为什么要在一个查询中包含这个? rating_countAVG(rating_value) 结果将针对每一行重复。不妨查询一次。
  • 如果您提供您正在寻找的输出类型的样本,可以帮助人们想象您正在尝试完成的事情。

标签: mysql count average


【解决方案1】:

可能有一个我不知道的技巧,但我认为这不可能在单个查询中完成。如果这对您有意义,您可以尝试使用 GROUP BY 子句,但我猜它可能与您使用的列名无关。任何关系都需要在任何给定的行和列上都有一个原子值,即使该值为空。您要求的是每行中的第 1 列和第 2 列,但第一列没有价值,我再次认为这是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2023-02-10
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多