考虑此表:
Id name type price
123451 Park's Great Hits Music 19.99
123452 Silly Puddy Toy 3.99
123453 Playstation Toy 89.95
123454 Men's T-Shirt Clothing 32.50
123455 Blouse Clothing 34.97
123456 Electronica 2002 Music 3.99
123457 Country Tunes Music 21.55
123458 Watermelon Food 8.73
此SQL查询返回每种类型中最昂贵的商品:SELECT类型,MAX(price)FROM产品GROUP BY类型
Clothing $34.97
Food $8.73
Music $21.55
Toy $89.95
我还想为每行获取属于上述最高价格的字段 ID 和 名称 。什么SQL查询将返回这样的表?
Id name type price
123455 Blouse Clothing 34.97
123458 Watermelon Food 8.73
123457 Country Tunes Music 21.55
123453 Playstation Toy 89.95
这是greatest-n-per-group
经常出现的问题。我通常的解决方法在逻辑上等效于@Martin Smith给出的答案,但不使用子查询:
SELECT T1.Id, T1.name, T1.type, T1.price
FROM Table T1
LEFT OUTER JOIN Table T2
ON (T1.type = T2.type AND T1.price < T2.price)
WHERE T2.price IS NULL;
我的解决方案以及到目前为止在该线程上给出的所有其他解决方案type
,如果一个以上的产品共享相同的类型,并且两个产品的价格均等于最高价格,则每个值都有可能产生多行。有多种方法可以解决这个问题并打破平局,但是您需要告诉我们哪种产品“胜出”,以防万一。
您还需要其他一些属性,这些属性必须保证在所有行中都是唯一的,至少对于具有same的行而言是唯一的type
。例如,如果具有更大Id
价值的产品获胜,则可以通过以下方式解决平局:
SELECT T1.Id, T1.name, T1.type, T1.price
FROM Table T1
LEFT OUTER JOIN Table T2
ON (T1.type = T2.type AND (T1.price < T2.price
OR T1.price = T2.price AND T1.Id < T2.Id))
WHERE T2.price IS NULL;
我能够在弹性搜索 6.8 中使用聚合查询获取数据库中文本字段的所有值: 我正在尝试为嵌套字段做同样的事情。 下面是文本字段(城市)和嵌套字段(冷却)的示例 下面是我一直引用的文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-bucket-terms-aggregation.html
问题内容: 我发现了Java:查找方法的所有调用者–获取所有调用特定方法的方法,这提示如何查找特定方法的所有调用者。 那么,如何获得静态字段的用户呢? 例如,当我有静态的,并且它与访问,如何获得 ? 问题答案: 该示例基于org.eclipse.jdt.internal。*类,由于JDT SearchEngine API具有全功能,因此我认为您无需花费太多精力。就您而言,下面的代码就足够了:
问题内容: 目前,我正在使用以下程序从elasticsearch中提取ID及其严重性信息。 我相信默认情况下查询返回10行。我在elasticsearch中有超过10000行。我需要获取所有信息。 有人可以指导我如何运行同一查询以获取所有记录吗? 问题答案: 您可以使用helper函数来从索引中检索所有文档:
问题内容: 我正在尝试收集一个部门中的ID列表(数组) 给我一个jQuery对象,但不是一个真正的数组; 我可以 然后使用for循环将id属性放入另一个数组 或者我可以做 无论如何,我只是想看看jQuery中是否有速记来做到这一点。 问题答案: //但是我无法真正获取ID并将其分配给不在范围内的数组?(或者我可以) 是的你可以! 请注意,当您处于正确的轨道上时,Sighohwell和cletus都
我运行了一段python代码,得到了如下数据帧输出: 现在我没有第7行到第29行。如何获取所有行?
我想知道将JavaFX TableView数据获取到集合中的最佳和最有效的方法。我想获得JavaFX TableView中的所有行。