Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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
Java 如何从表中选择前五名产品_Java_Mysql - Fatal编程技术网

Java 如何从表中选择前五名产品

Java 如何从表中选择前五名产品,java,mysql,Java,Mysql,现在,我想找到特定月份最畅销的5种产品。我也有发票注册表,所以我可以获得特定月份的“iId”。我的问题是如何为给定的iId选择前5种产品。proID可以相同或不同[通常不同]。top表示最大数量。所以我想要前5种[数量]的产品idproID.我试图编写mysql查询,但失败了 +-------+-----+-------+----------+-------+ | iniid | iID | price | quentity | proID | +-------+-----+-------+--

现在,我想找到特定月份最畅销的5种产品。我也有发票注册表,所以我可以获得特定月份的“iId”。我的问题是如何为给定的iId选择前5种产品。proID可以相同或不同[通常不同]。top表示最大数量。所以我想要前5种[数量]的产品idproID.我试图编写mysql查询,但失败了

+-------+-----+-------+----------+-------+
| iniid | iID | price | quentity | proID |
+-------+-----+-------+----------+-------+
|    42 |  16 |    20 |       30 |  4001 |
|    43 |  16 |    20 |       30 |  4001 |
|    44 |  16 |    20 |       30 |  4002 |
|    45 |  16 |    20 |       30 |  4002 |
|    46 |  17 |    20 |        1 |  4001 |
|    47 |  17 |    20 |        1 |  4003 |
|    48 |  17 |    20 |        1 |  4005 |
|    49 |  17 |    20 |        1 |  4001 |
|    50 |  17 |    20 |        1 |  4009 |
|    51 |  17 |    20 |        1 |  4002 |
|    52 |  17 |    20 |        1 |  4001 |
|    53 |  17 |    20 |        1 |  4005 |
|    54 |  17 |    20 |        1 |  4008 |
|    55 |  17 |    20 |        1 |  4008|
|    56 |  17 |    20 |        1 |  4007 |
|    57 |  17 |    20 |        1 |  4000 |
|    58 |  18 |    20 |        2 |  4005 |
|    59 |  18 |    20 |        2 |  4002 |
|    60 |  18 |    20 |        2 |  4003 |
|    61 |  18 |    20 |        2 |  4003 |
|    62 |  18 |    20 |        2 |  4009 |
|    63 |  18 |    20 |        2 |  4003 |
|    64 |  18 |    20 |        2 |  4002 |
MySQL使用LIMIT而不是TOP。只需订购您的quentity field DESC,您将获得quentity最高的前5项记录:

请注意,有可能你的第五个结果是平局。如果需要考虑关系,可以使用用户定义的变量

根据您的编辑,您希望对quentity字段求和,然后将结果排序为最高的求和数量

SELECT *
FROM Invoice
WHERE iID>15
ORDER BY quentity DESC
LIMIT 5

@sgedded问题是我想找到数量最多的前5个产品。proID是产品id。根据您的回答,这将给我所有最高数量。@PiumiWandana-根据您的编辑,我编辑了我的回复。听起来你是在找总和。
SELECT *
FROM Invoice
WHERE iID>15
ORDER BY quentity DESC
LIMIT 5
SELECT proId, SUM(quentity)
FROM Invoice
WHERE iID > 15
GROUP BY proId
ORDER BY 2 DESC
LIMIT 5