问题标签 [top-n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
28788 浏览

python - How to see top n entries of term-document matrix after tfidf in scikit-learn

I am new to scikit-learn, and I was using TfidfVectorizer to find the tfidf values of terms in a set of documents. I used the following code to obtain the same.

Now If I print X, I am able to see all the entries in matrix, but how can I find top n entries based on tfidf score. In addition to that is there any method that will help me to find top n entries based on tfidf score per ngram i.e. top entries among unigram,bigram,trigram and so on?

0 投票
1 回答
821 浏览

sql - Apache Hive Query HiveQL

I am learning Hive and wanted to write an optimized HiveQL/SQL query

My table looks like this:

Given a "dealer" D, I want to compute the top N "make" for each "type" in the past X days, in a single query.

The problem is when using GROUP BY on "make" and "type" for top 1, I will only get:

But I want

for EACH "type" the top N.

Could someone help me understand how to write such a query?

SQL Fiddle http://sqlfiddle.com/#!2/df9304/5

****Update****

Seems like rank() would be useful:

Hive getting top n records in group by query

https://blogs.oracle.com/taylor22/entry/hive_0_11_may_15

HiveQL and rank()

0 投票
1 回答
5484 浏览

python - Pandas 在组和支点报告中排名前 n

我试图通过沿单个维度 d1 分组并报告 d1 的每个元素的汇总统计信息来汇总数据框。特别是我对一些指标的前 n 个(索引和值)感兴趣。我想要为 d1 的每个元素生成一行。

假设我有两个维度 d1、d2 和 4 个指标 m1、m2、m3、m4

1) 对于每个度量 m1 - m4,建议的按 d1 分组的方法是什么,并找到前 n d2 和度量值。

在 Wes 的《Python for Data Analysis》一书中,他建议(第 35 页)

这仍然是推荐的方式吗(我只对说 1000 中的前 5 d2 和多个指标感兴趣)2)现在下一个问题是我想旋转前 5 名(即,我对每个元素都有一行d1)

因此,对于维度 d1、d2 和度量 m1,生成的数据框应如下所示:索引 d1 和列 d2 的前 5 个值和 m1 的相应值

d1 d2-1 d2-2 d2-3 d2-4 d2-5 m1-1 m1-2 m1-3 m1-4 m1-5

……

所以要旋转,我必须沿 d2 创建排名(即 1 到 5 - 这是我的列字段)。如果我总是有 5 个条目,这将很容易,但对于给定的 d1 值,有时 d2 的元素少于 5 个。

所以有人可以建议如何为分组添加排名,以便我有正确的列索引来执行旋转

0 投票
1 回答
1280 浏览

mdx - 从 SSAS 表格模型有效地显示 Excel 数据透视表中的前 N ​​个

我有一个简单的表格模型,由一个事实表组成,大约。20 米奥。记录(销售交易)和包含大约 600.000 条记录(客户)的维度表。

一个典型的报告场景是通过事实表中的某个度量来获取前 10 名客户,可能通过其他一些标准(通常是时间段、产品等)进行过滤。

在 Excel 中,聚合所有 20 个 mio。返回总销售额的记录是即时的。但是,一旦我尝试按客户分组,检索所有数据需要一些时间(15-20 秒),这是有道理的,因为需要显示相当多的客户(600.000)。

现在,如果我在 Excel 中应用值过滤器,只获取前 10 名客户,返回结果仍然需要大约 15-20 秒,这对我的用户来说是不可接受的(因为他们希望立即看到前 10 名客户同时对其他属性(如产品、时间等)进行切片。

在内部,Excel 在使用TOPCOUNT值过滤器查询表格模型时使用 MDX 函数。

我可以在表格模型中做些什么来加速这类查询吗?

我试过了:

  • 在维度表上创建一个计算列,包含每个客户的总销售额。虽然性能更好,但这不是要走的路,因为该列中的值不能被事实中的其他属性切片,并且该列显然最终包含许多不同的值(这在表格中是一件坏事)。
  • 使用此处RANKX建议的 DAX 函数在事实表上创建计算度量。这导致我的表格实例崩溃(维度表中的记录太多?)
  • TOPN使用 DAX函数直接在表格模型上执行简单的 DAX 语句。这甚至比TOPCOUNTMDX 方法慢 3-4 倍。
0 投票
2 回答
1834 浏览

sql - 在 Oracle SQL 上仅排除一个 MIN 值

我试图选择一列(GameScore)中除最低值之外的所有值,但是当有两个这个最低值时,我的代码将两者都排除在外(我知道它为什么这样做,我只是不知道如何更正它并包括两个最低值之一)。

代码看起来像这样:

因此,如果我从 5 个值中提取,但其中一行仅获得 3 个分数,因为底部两个相同,我如何包括第 4 个?谢谢。

0 投票
2 回答
492 浏览

sql - 如何在 Oracle / SQL 的主查询中与表执行联接时使用内联视图获取前 n 个?

这似乎是一个非常简单的查询,但我必须遗漏一些明显的东西。我假设这种情况很常见。

我有一个存储产品的表和另一个存储交易的表。交易表有关于销售员的信息。现在,我需要生成一份报告,列出所有产品并包含最后销售该产品的销售人员的 ID。

我尝试了一个简单的查询,例如:

select id, product_name, (select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1) salesman_id from products a

这个查询在 a.id 上给了我无效的标识符。

所以在网上搜索后,我尝试在其中添加一个 LATERAL 子句。如下

select id, product_name, salesman_id from products a, LATERAL(select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1)

但是这个查询给了我不完整的 SQL 语句。

有没有一种简单的方法可以在单个查询中实现这一点?

0 投票
1 回答
178 浏览

sql - 返回前 2 个值的 SQL 查询

我正在尝试返回我们客户数据库中订购最多的 2 个商品。以下是我订购最多的商品的内容,但我无法弄清楚如何为第二次订购最多的商品创建另一列。

创建第二列的最佳方法是什么?

0 投票
1 回答
1753 浏览

sql - MS-Access SELECT TOP N 子查询 SQL

已多次尝试此查询,感觉就像我错过了一些简单的东西。

这个例子:前 N 个聚合子查询接近我想要完成的,但是我不想平均距离,我只想返回前 N 个距离和 shopID。

在我的数据中,值类似于数字分数,值越高越好。我的目标是获得一个列表,显示前 2 个得分最差的 SubTypeNames 及其每个 StationId 的得分。

我的示例表:(复合 PK:StationId 和 SubTypeId)

这种模式重复了 50 多个站点。

我的 UPDTAED 输出:(来自如下所示的查询)

我最近的尝试:

更新:我的上述查询几乎按预期工作。仍然存在的问题是由于有人在他们的评论中预示的同一站的重复值造成的。出于此查询的目的,我只需要 TOP N,有没有办法只取 n 个结果的第一个 SubTypeId 具有相等的值?

任何帮助将不胜感激。谢谢!

0 投票
2 回答
52743 浏览

mysql - 在 MariaDB 中,如何从表中选择前 10 行?

我刚刚在网上读到 MariaDB(SQLZoo 使用的)是基于 MySQL 的。所以我认为我可以使用 ROW_NUMBER() 函数

但是,当我在 SQLZoo 中尝试此功能时

然后我得到这个错误:

错误:FUNCTION gisq.ROW_NUMBER 不存在

0 投票
4 回答
2129 浏览

sql - how to display only 20 items of the result in oracle sql?

Is it possible to display only 20 items of the whole result? I know of a query "rownum>=20" but that only makes the sql check only the first 20 rows in the table. But i want the sql to check my whole table and display only the highest 20 entries.

To be clear, I have a table with job description like Title, description, agency, salary_min, salary max. I want to display the 20 highest paying jobs.