Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择具有最大平均值的元素_Mysql_Sql - Fatal编程技术网

Mysql 选择具有最大平均值的元素

Mysql 选择具有最大平均值的元素,mysql,sql,Mysql,Sql,在我的数据库中,我有以下模式: table: files columns: fileId, authorId, fileSize table: authors columns: authorId, surname, firstName 现在,我想选择文件大小平均值最高的作者的authorId。对于如何最好地加入这些表,我现在有点不知所措。我已经能够为一个作者选择平均文件大小,但现在必须扩展它以与每个作者一起工作 SELECT AVG(`fileSize`) FROM ( SELECT

在我的数据库中,我有以下模式:

table: files
columns: fileId, authorId, fileSize

table: authors
columns: authorId, surname, firstName
现在,我想选择文件大小平均值最高的作者的authorId。对于如何最好地加入这些表,我现在有点不知所措。我已经能够为一个作者选择平均文件大小,但现在必须扩展它以与每个作者一起工作

SELECT AVG(`fileSize`) FROM (
    SELECT `fileSize`, `files`.`authorId` FROM `files` 
        INNER JOIN `authors` aut ON `files`.authorId = aut.authorId 
    WHERE aut.authorId = 6) 
as T;

如果只需要
authorId
,则只能通过
文件
表找到:

SELECT authorId
FROM files
GROUP BY authorId
ORDER BY AVG(fileSize) DESC
LIMIT 1 ;
如果您还需要此作者的其他数据,则可以使用前一个a派生表并将其连接到
作者

SELECT a.*                         -- the columns you need
FROM authors AS a
  JOIN
  ( SELECT authorId
    FROM files
    GROUP BY authorId
    ORDER BY AVG(fileSize) DESC
    LIMIT 1 
  ) AS m
  ON m.authorId = a.authorId ;

如果只需要
authorId
,则只能通过
文件
表找到:

SELECT authorId
FROM files
GROUP BY authorId
ORDER BY AVG(fileSize) DESC
LIMIT 1 ;
如果您还需要此作者的其他数据,则可以使用前一个a派生表并将其连接到
作者

SELECT a.*                         -- the columns you need
FROM authors AS a
  JOIN
  ( SELECT authorId
    FROM files
    GROUP BY authorId
    ORDER BY AVG(fileSize) DESC
    LIMIT 1 
  ) AS m
  ON m.authorId = a.authorId ;

如果只需要
authorId
,则只能通过
文件
表找到:

SELECT authorId
FROM files
GROUP BY authorId
ORDER BY AVG(fileSize) DESC
LIMIT 1 ;
如果您还需要此作者的其他数据,则可以使用前一个a派生表并将其连接到
作者

SELECT a.*                         -- the columns you need
FROM authors AS a
  JOIN
  ( SELECT authorId
    FROM files
    GROUP BY authorId
    ORDER BY AVG(fileSize) DESC
    LIMIT 1 
  ) AS m
  ON m.authorId = a.authorId ;

如果只需要
authorId
,则只能通过
文件
表找到:

SELECT authorId
FROM files
GROUP BY authorId
ORDER BY AVG(fileSize) DESC
LIMIT 1 ;
如果您还需要此作者的其他数据,则可以使用前一个a派生表并将其连接到
作者

SELECT a.*                         -- the columns you need
FROM authors AS a
  JOIN
  ( SELECT authorId
    FROM files
    GROUP BY authorId
    ORDER BY AVG(fileSize) DESC
    LIMIT 1 
  ) AS m
  ON m.authorId = a.authorId ;

下面应该按照平均文件大小的顺序列出作者列表

SELECT AVG(files.fileSize), aut.authorId, aut.firstname, aut.surname
FROM  files 
INNER JOIN authors aut ON files.authorId = aut.authorId 
GROUP BY aut.authorId
ORDER BY AVG(files.fileSize) DESC;

您可以将
AVG(files.fileSize)
退出选择,它仍然可以工作

如果您只想要一个最大值(或者如果碰巧存在max的所有关系),则需要再深入挖掘一点。
下面的堆栈溢出问题应该会有所帮助。

以下内容应按平均文件大小顺序列出作者列表

SELECT AVG(files.fileSize), aut.authorId, aut.firstname, aut.surname
FROM  files 
INNER JOIN authors aut ON files.authorId = aut.authorId 
GROUP BY aut.authorId
ORDER BY AVG(files.fileSize) DESC;

您可以将
AVG(files.fileSize)
退出选择,它仍然可以工作

如果您只想要一个最大值(或者如果碰巧存在max的所有关系),则需要再深入挖掘一点。
下面的堆栈溢出问题应该会有所帮助。

以下内容应按平均文件大小顺序列出作者列表

SELECT AVG(files.fileSize), aut.authorId, aut.firstname, aut.surname
FROM  files 
INNER JOIN authors aut ON files.authorId = aut.authorId 
GROUP BY aut.authorId
ORDER BY AVG(files.fileSize) DESC;

您可以将
AVG(files.fileSize)
退出选择,它仍然可以工作

如果您只想要一个最大值(或者如果碰巧存在max的所有关系),则需要再深入挖掘一点。
下面的堆栈溢出问题应该会有所帮助。

以下内容应按平均文件大小顺序列出作者列表

SELECT AVG(files.fileSize), aut.authorId, aut.firstname, aut.surname
FROM  files 
INNER JOIN authors aut ON files.authorId = aut.authorId 
GROUP BY aut.authorId
ORDER BY AVG(files.fileSize) DESC;

您可以将
AVG(files.fileSize)
退出选择,它仍然可以工作

如果您只想要一个最大值(或者如果碰巧存在max的所有关系),则需要再深入挖掘一点。
下面的堆栈溢出问题应该会有所帮助。

你在用什么数据库服务器?我在用mysql数据库。你在用什么数据库服务器?我在用mysql数据库。你在用什么数据库服务器?我在用mysql数据库。你在用什么数据库服务器?我在用mysql数据库。