Java 我们需要的是;前五名;id';s";从这个查询

Java 我们需要的是;前五名;id';s";从这个查询,java,mysql,Java,Mysql,我有人帮我,而且已经接近了,我需要从这个查询中获得前五个“id”。现在的情况是,我只拿到了一张身份证,而不是前五名。有人知道怎么纠正吗?以下是查询: ( SELECT id, firstName, lastName, SUM(fileSize) AS TotalBytes, SUM(fileSize)/COUNT(*) AS Average FROM roster_cs368 AS a JOIN htmp_cs368 AS b USING (id)

我有人帮我,而且已经接近了,我需要从这个查询中获得前五个“id”。现在的情况是,我只拿到了一张身份证,而不是前五名。有人知道怎么纠正吗?以下是查询:

(
SELECT id,
     firstName,
     lastName,
     SUM(fileSize) AS TotalBytes,
     SUM(fileSize)/COUNT(*) AS Average
FROM   roster_cs368 AS a
JOIN htmp_cs368  AS b USING (id)
) UNION (
SELECT id,
     firstName,
     lastName,
     SUM(fileSize) AS TotalBytes,
     SUM(fileSize)/COUNT(*) AS Average
FROM   roster_cs368 AS a
JOIN atmp_cs368  AS b USING (id)
)
ORDER BY TotalBytes DESC
LIMIT 5
谢谢大家!!这也是更大程序的一部分,因此是java标记

以下是模式:

mysql> select * from roster_cs368
-> ;
+--------+-----------+-----------+
| id     | firstName | lastName  |
+--------+-----------+-----------+
| apn7cf | Allen     | Newton    |
| atggg3 | andrew    | goebel    |
主键在哪里

mysql> select * from htmp_cs368;
+------------+----------+------------+----------+----------+-------+------+-------+----------------------+
| filePerms  | numLinks | id         | idGroup  | fileSize | month | day  | time  | fileName             |
+------------+----------+------------+----------+----------+-------+------+-------+----------------------+
| drwx------ |        2 | schulte    | faculty  |      289 | Nov   |    7 | 2011  | Java                 |
| -rw-r--r-- |        1 | schulte    | faculty  |      136 | Apr   |   29 | 2012  | LD                   |
| drwxr-xr-x |        3 | schulte    | faculty  |      177 | Mar   |   20 | 2012  | Upgrade              |
这里没有主键

mysql> select * from atmp_cs368;
+------------+----------+--------------+----------+----------+-------+------+-------+-----------------------------+
| filePerms  | numLinks | id           | idGroup  | fileSize | month | day  | time  | fileName                    |
+------------+----------+--------------+----------+----------+-------+------+-------+-----------------------------+
| drwxr-xr-x |        2 | remierm      | 203      |      245 | Sep   |   17 | 14:40 | 148360_sun_studio_12        |
| drwx---rwx |       31 | antognolij   | sasl     |     2315 | Oct   |   24 | 12:28 | 275                         |
| -rwx------ |        1 | kyzvdb       | student  |       36 | Sep   |   19 | 13:05 | 275hh                       |
这里没有主键

我的问题是:

produce a list of the five members of roster_cs368,
    and their ids who use the most space (number of bytes)
    in htmp_cs368 and atmp_cs368 in descending order--
    greediest first.  display total number of bytes and
    average size of file

您可以这样做:

SELECT * FROM(
(
SELECT id,
     firstName,
     lastName,
     SUM(fileSize) AS TotalBytes,
     SUM(fileSize)/COUNT(*) AS Average
FROM   roster_cs368 AS a
JOIN htmp_cs368  AS b USING (id)
) UNION (
SELECT id,
     firstName,
     lastName,
     SUM(fileSize) AS TotalBytes,
     SUM(fileSize)/COUNT(*) AS Average
FROM   roster_cs368 AS a
JOIN atmp_cs368  AS b USING (id)
)
) as somealias ORDER BY TotalBytes DESC
LIMIT 5

定义前5名。。。也许和我们分享这个模式,给我们一个预期输出的例子,实际输出是什么,等等on@Tim添加了模式和查询。我感谢您的帮助,但它给了我一个错误
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解使用near'FROM((选择id、firstName、lastName、SUM(fileSize))的正确语法作为第1行的TotalByt,它有一个错误,我已经用一个固定版本更新了我的答案,请尝试。仍然只有1个用户,然后为空。我已经更新了我的原始帖子以包含架构。