Excel Power Query连接到另一个表

时间:2019-04-30 16:01:39

标签: excel powerquery

对查询提出了新的要求,并且在很大程度上是通过反复试验找到我的脚的。

我已经建立了一个主查询,该查询返回了覆盖不同区域的2000行数据。我想在每个区域的不同选项卡上创建子报告。通过复制原始表并对每个新查询在区域上应用过滤器,我可以轻松地做到这一点。由于我的s / s已经是10mb,因此我试图在性能方面尽可能高效地做到这一点。我知道我也可以通过创建对主查询的“仅引用”而不是复制和过滤主查询(因此使用不同的过滤器创建10个版本的主查询)来做到这一点。

我一直在尝试通过“查询/引用”菜单执行此操作,但是不确定是否以“仅连接”查询结束,因为它在右侧的“查询”面板中没有显示。

无论如何,我想问题是: 1.查询和“仅连接”查询之间有什么区别(特别是在性能/电子表格大小方面)? 2.什么时候最好使用“仅连接”查询? 3.如何创建“仅连接”查询(最好通过菜单而不是代码),以及如何检查查询是否仅是连接?

enter image description here

1 个答案:

答案 0 :(得分:1)

... try: conn = psycopg2.connect(user=settings.RIPPLEET_USER,password=settings.RIPPLEET_PASS,host=settings.PSQL_HOST,port=settings.PSQL_PORT,database=settings.PSQL_DB) cursor = conn.cursor() # insert ops # check if the data is already separated print d['user']['screen_name'] # insert data into table sqlquery = ''' INSERT INTO rippleet_tweet (SCREENNAME, TWEET, HASHTAGS, WORDCOUNTS) VALUES (%s,%s,%s,%s,%d) ''' cursor.execute(sqlquery, (str(d['user']['screen_name'].encode('utf-8')), str(d['extended_tweet']['full_text'].encode('utf-8')), str(d['entities']['hashtags']['text']), len(str(d['extended_tweet']['full_text'].encode('utf-8')).split()))) conn.commit() count = cursor.rowcount print (count, " Record inserted successfully into table") except (Exception, psycopg2.Error) as error: if(conn): print("Failed to insert record into table", error) finally: #closing database connection. if(conn): cursor.close() conn.close() print(" [*] PostgreSQL connection is closed") ... 表示未在任何地方实现数据。其他查询可能仍会引用它,但没有将数据加载到工作表表或数据模型中。

您可以使用Connection only对话框控制查询的行为,该对话框由 Query Editor Load To Workbook的Close and Load To调用查询窗格

enter image description here

仅连接查询会减小工作簿的大小-经验法则是除非您确实需要,否则不要实现任何查询。在您的示例中,您似乎想实现每个区域查询,但是除非您还需要所有区域的主表,否则“主”查询可能仅是连接。

就性能和规模而言,只将主查询加载到数据模型中,并在报表上使用区域切片器,这才有意义。