问题标签 [derived-table]
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.
sql - SQL 语句中的不熟悉字符
我认为这是一个 SQL 新手问题,但这里有。
我有一个基于示例用户定义函数的 SQL 查询 (SQL Server 2005):
UDF 效果很好(它连接相关表中多行的数据,如果这很重要的话)但我对 FROM 子句后面的“i”感到困惑。查询与 i 一起工作正常,但没有它就会失败。“我”的意义是什么?
编辑:正如乔尔在下面指出的,它不是关键字
tsql - 如何在 T-SQL 中将变量赋值与数据检索操作结合起来
澄清一下,我正在运行 Sybase 12.5.3,但我相信这也适用于 SQL Server 2005。基本上,我正在尝试编写一个看起来有点像这样的查询,我已经尽可能地简化它以突出问题:
此查询给我以下错误:“错误:141 为变量赋值的 SELECT 语句不得与数据检索操作结合使用。”
到目前为止,我唯一的解决方法是将派生表数据插入到一个临时表中,然后再次选择它。效果很好,但是这不起作用的事实让我很恼火。有一个更好的方法吗?
sql-server-2005 - SQL Server 性能:派生表与公用表表达式 (CTE)
在派生表上使用 CTE 是否有任何性能提升?
mysql - mysql SELECT AS 中的索引或使用视图
我对一个大的 mysql 查询(mysql 5.0)感到头疼,我希望这里有人能提供帮助。
之前我问过如何从连接查询中获取不同的值 mysql count only for distinct values in join query
我得到的响应(使用带有连接的子查询)
不幸的是,我的查询变得越来越不守规矩,虽然我运行它,但加入派生表需要太长时间,因为派生查询没有可用的索引。
我的查询现在看起来像这样
呸!
所以,正如你所看到的,如果我正确理解了我的问题,我有两个没有索引的派生表(我不否认我可能以某种方式搞砸了 Join 语句,但我一直在搞乱不同的类型,这结束了吗给我我想要的结果)。
创建与此类似的查询的最佳方法是什么,这将使我能够利用索引?我敢说,我实际上还有一张桌子可以在以后添加到组合中。
目前,我的查询需要 0.8 秒才能完成,但我确信如果我可以利用索引,这可能会快得多。
sql - Access 中的 SQL 帮助 – 寻找数据的缺失
我试图找到最快的方法来查找父表中没有子表中某些记录的所有记录。例如,我希望查询返回没有男孩或根本没有孩子的所有家庭记录。
示例 1
这是非常缓慢的:
SELECT * FROM Families
WHERE Families.FamilyID NOT IN(SELECT FamilyID FROM Children WHERE Children.Gender="m")
示例 2
这更快:
SELECT * FROM Families
WHERE NOT EXISTS(SELECT * FROM Children WHERE Children.Gender="m" AND Children.FamilyID = Families.FamilyID)
示例 3
这是最快的,但我担心投资它,因为我找不到任何文档。我什至不知道它叫什么。由于缺少更好的术语,我们一直将其称为“匿名查询”。
SELECT * FROM Families
LEFT JOIN
[SELECT * FROM Children WHERE Gender="m"]。AS AliasChildren ON Families.FamilyID=AliasChildren.FamilyID
WHERE AliasChildren.FamilyID 为 NULL
所以我的问题是:
- 在示例 3 中这个东西叫什么?
- 是不是将来会支持的Access的“主流”功能?
- 我在哪里可以找到它的文档(一旦我知道它叫什么,这可能会更容易)?
谢谢!
sql - 创建 SQL 查询以检索最新记录
我正在为我的项目团队创建一个状态板模块。状态板允许用户将他们的状态设置为进入或退出,他们还可以提供注释。我计划将所有信息存储在一个表中......数据示例如下:
我想查询数据并返回每个用户的最新状态,在这种情况下,我的查询将返回以下结果:
我试图找出 TRANSACT-SQL 来实现这一点?任何帮助,将不胜感激。
sql - 如何进一步优化派生表查询,它的性能优于 JOINed 等效项?
更新:我找到了解决方案。请参阅下面的我的答案。
我的问题
如何优化此查询以最大程度地减少停机时间?我需要更新 50 多个模式,票证数量从 100,000 到 200 万不等。是否建议尝试同时设置 ticket_extra 中的所有字段?我觉得这里有一个我没有看到的解决方案。一天多来,我一直在努力解决这个问题。
此外,我最初尝试不使用子 SELECT,但性能比我目前拥有的要差得多。
背景
我正在尝试针对需要运行的报告优化我的数据库。我需要聚合的字段计算起来非常昂贵,因此我将现有模式非规范化以适应此报告。请注意,我通过删除几十个不相关的列来大大简化了票证表。
我的报告将按Manager When Created和Manager When Resolved汇总票数。这种复杂的关系如下图所示:
(来源:mosso.com)
为了避免即时计算所需的六个讨厌的连接,我将下表添加到我的模式中:
现在的问题是,我没有将这些数据存储在任何地方。经理总是动态计算的。我在多个数据库中拥有数百万张具有相同架构的票证,需要填充此表。我想以尽可能高效的方式执行此操作,但在优化我用来执行此操作的查询方面没有成功:
此查询需要一个多小时才能在具有 > 170 万张票证的模式上运行。这对于我拥有的维护窗口是不可接受的。此外,它甚至不处理计算 manager_resolved 字段,因为尝试将其组合到同一个查询中会将查询时间推到平流层。我目前的倾向是将它们分开,并使用 UPDATE 来填充 manager_resolved 字段,但我不确定。
最后,这是该查询的 SELECT 部分的 EXPLAIN 输出:
非常感谢您的阅读!
mysql - 索引和加速“派生”查询
我最近注意到我的一个查询运行得很慢,每个查询几乎 1 秒。
查询看起来像这样
解释是
我曾尝试在 latlong 上使用“力指数”,但这似乎并没有加快速度。
是导致响应缓慢的派生表吗?如果是这样,有没有办法提高这个性能?
--------编辑------------- 我也尝试改进格式以使其更具可读性
我运行相同的查询,仅将 'WHERE 语句更改为
该查询在 0.006 秒内运行
解释看起来像
sql - 我希望我可以关联一个“内联视图”
我有一个病人表:
我有一个 PatientMeasurement 表(0 到多个):
我正在尝试创建一个类似于以下内容的结果集:
本质上,如果患者具有至少一个测量 A 值和一个测量 B 值,则患者的分子将具有 1。在此示例中,患者 1 具有 3 个 A 测量值和 2 个 B 测量值,因此分子为 1。患者2 有 2 个 A 测量值,但没有 B 测量值,因此分子为 0。患者既没有 A 测量值也没有 B 测量值,因此分子为 0。
到目前为止,我的查询是:
只要我不包括相关的日期限制(Recorded < dateadd(hh, 12, Admitted)),这将按预期工作。不幸的是,以这种方式关联“内联视图”在语法上无效。
这迫使我将 SQL 重写为:
我的问题:有没有更好、更有效的方法来做到这一点?
谢谢你的时间。
nhibernate - NHibernate + 连接到派生表
在每个员工存储多行的表中,我想为每个员工提取一行,代表每个员工的最新条目。这是我使用手写 SQL 的地方:
从这样的源数据:
这会给我这样的东西:
我无法弄清楚如何通过 NHibernate ICriteria 完成这种类型的查询。有什么想法吗?