Questions tagged «query»

编写查询以请求或更改存储在数据库或其他信息管理系统中的信息。问题应包括表和索引的定义,示例数据,预期输出以及特定系统(例如MySQL,PostgreSQL,Oracle,SQL Server,MongoDB)的标记。

5
按小时按大型数据集分组
我使用MS SQL 2008从250万条记录中选择一个平均字段。每条记录代表一秒钟。MyField是这些1秒记录的每小时平均值。当然,服务器CPU达到100%,选择时间太长。我可能需要保存这些平均值,以便SQL不必在每个请求中都选择所有这些记录。该怎么办? SELECT DISTINCT CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) AS TimeStampHour, MIN([timestamp]) as TimeStamp, AVG(MyField) As AvgField FROM MyData WHERE TimeStamp > '4/10/2011' GROUP BY CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) ORDER BY TimeStamp
12 sql-server  query 

3
如何从Microsoft SQL Server中清除所有旧查询计划?
我们有一个使用Microsoft SQL数据库的现成应用程序。在此应用程序中,我们为每个报告选择各种选择标准。然后,该应用程序将运行这些报告。 我相信我们有一个查询计划问题。我们每天运行的第一份报告非常快地运行了7分钟。我们在第一个报告后生成的任何报告都需要一个多小时。 每天晚上,我们运行一个计划的任务,该任务将停止并启动SQL Server代理和SQL Server。这个SQL Server实例中大约还有25个其他数据库。没有其他数据库存在性能问题,只有我之前提到的现成产品。 有没有一种方法可以清除SQL Server当前在内存中的所有查询计划? 如何做到这一点而又不影响依赖同一服务器上其他数据库的30多个用户?

3
根据时间间隔对记录进行分组
我有一个具有以下模式的表,我需要定义一个查询,该查询可以基于时间间隔(例如每分钟记录数)对数据进行分组,然后提供自上一组以来对SnapShotValue所做的更改的总和。目前,SnapShotValue始终递增,因此我只需要求和。任何人都可以帮助执行此操作的SQL Server T-SQL查询吗?我愿意更改架构,但这是我目前拥有的。 架构图 CaptureTime (datetime) SnapShotValue (int) 样本数据 1 Jan 2012 00:00:00, 100 1 Jan 2012 00:00:30, 125 1 Jan 2012 00:01:00, 200 1 Jan 2012 00:01:30, 300 1 Jan 2012 00:02:15, 400 1 Jan 2012 00:02:30, 425 1 Jan 2012 00:02:59, 500 所需的查询结果 1 Jan 2012 00:01:00, 225 …

3
如何在一个查询中进行多个计数?
我用类似的查询来计数记录 SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%something%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%another%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%word%' 对于每个计数,mysql需要遍历整个表,如果表很长且有许多查询,这将是一个大问题。 我想知道是否有一种方法可以在一个查询中进行所有计数。在这种情况下,当mysql遍历每一行时,它将处理所有计数,而无需一遍又一遍地扫描整个表。

5
完全外部加入MS Access
我有两个工作人员名单: List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 和 List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 我需要以下输出: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 请注意,列表A和列表B中的员工ID已合并到一个非重复列表中,并且我已经合并了两个主管明细,这两个列表之间可能不匹配。 查询不必很好。每个列表中都有大约8000条记录,我会很好地运行它。如有必要,我很乐意在以后进行一些小的Excel操作。 …
11 query  join  ms-access 

5
在SQL Server中找出多少记录没有正确电话号码的最佳方法是什么?
我有一个领域,人们在历史上可以用来自由提供价值。我需要确定没有适当值的记录,以便清理它们。 我一直在SSIS中四处寻找。我的倾向是在某些C#代码中使用带有正则表达式的脚本组件,然后进行重定向。仍然,我想知道SSIS中是否有一种方法可以不使用C#来执行此操作。 我没有很多运气找到一种方法来找出多少记录没有适当的电话号码。

3
这两个查询在逻辑上是否等效?
这两个查询在逻辑上是否等效? DECLARE @DateTime DATETIME = GETDATE() 查询1 SELECT * FROM MyTable WHERE Datediff(DAY, LogInsertTime, @DateTime) > 7 查询2 SELECT * FROM MyTable WHERE LogInsertTime < @DateTime - 7 如果它们在逻辑上不是等效的,您可以给我第一个查询的逻辑等效,以便WHERE子句可以有效地使用索引(即消除函数包装)吗?

4
检查2个表(在不同服务器上)是否具有相同的准确数据
因此,托管我们的SQL Server的公司似乎在从生产服务器到备份服务器的复制中遇到了一些麻烦……我相信某些表已被正确地复制了。复制每天进行一次(数小时后)。 有什么方法可以比较两个相同的表,一个是备份中的表,另一个是生产服务器中的表,以查看昨晚复制是否有效? 我能找到的唯一方法是在两台服务器上运行以下查询,并查看结果是否与哪个“可能”匹配意味着2个表包含相同的信息。 SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM ( SELECT * FROM table_to_compare ) t1 使用上面的代码,似乎表已成功复制,因为校验和值相同,但是我不确定此方法的可靠性。 有谁知道更好的方法来检查这一点,或者这是否是一个好方法? 我在Windows Server 2008计算机上运行SQL Server 2008。 谢谢。

3
Oracle:如何查询层次表?
背景 这是为了构造一些我们将用于报告的视图。 我有一张位置表,关键字段是“ location”和“ parent”。 这两个字段在层次上创建的结构与公司名称->校园名称->建筑物名称->楼层名称->房间名称相似。在这种情况下,公司名称保持不变,园区名称保持不变。 位置的结构通常如下所示: +-----------+ | Org. Name | +-----+-----+ | +-----v-----+ +--------------------+|Campus Name|+---+--+-------------+ | +--+--------+ | | | | | | | | | | +--+-----+ +------+-+ +--+----+ +---+---+ +--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds| | +--------+ | +--------+ +-------+ +-------+ +-+------+ +-----+--+ |Floor-01| |Basement+-------+ +-+------+ …
10 oracle  query  view  hierarchy 

3
如何提高MS SQL Server中原始查询的性能?
我有一个ASP.NET网站,它拥有自己的独立数据缓存,并且数据不会长时间更改,因此它不需要使用相同的查询第二次查询SQL Server。我需要提高转到该SQL Server的首次(原始)查询的性能。一些查询处理的数据太多,可能导致SQL Server使用tempdb。我不使用临时表变量或临时表,因此SQL Server决定tempdb在需要时自行使用。 我的数据库大小为16Gb,服务器计算机上有32Gb的物理RAM。 我了解MS SQL Server缓存策略会尝试将数据保留在RAM中,以加快类似查询的性能(如果它们需要再次加载相同的数据)。除此之外,它将尝试使用可用的RAM代替tempdb来提高性能,而不会引起磁盘访问。 我想当需要在tempdb SQL Server中存储一些内容的查询出现并且没有足够的RAM可用时,SQL Server有2个选择: 1)卸载一些缓存的数据并使用备用的RAM代替tempdb以避免磁盘写入 2)保留缓存的数据以备将来查询,并开始使用tempdb,这会导致写入慢速磁盘。 我不知道在这种情况下SQL Server会做出什么选择,但我希望它成为选择#1,因为我只关心首次查询(原始)的性能,因为我再也不会向SQL Server发送相同的查询了。 (尽管我可能会发送类似的查询)。 在这种情况下,SQL Server缓存策略是什么? 在避免针对原始查询的tempdb和第二次查询的速度之间,如何平衡RAM的使用? 是否可以以选择#1的方式配置SQL Server?如果是,那怎么办? 我还能如何提高所有原始SQL查询的性能? 由于我不了解SQL Server缓存策略,因此我想将数据库放在RAM磁盘上。这将确保即使SQL Server始终选择#1,任何原始查询都可以高速加载未缓存的数据。这样做的风险是,如果SQL Server继续选择#2,则可能会开始使用更多具有较少可用RAM的tempdb(在我将16Gb用于RAM磁盘后仅剩下16Gb),这将减慢那些导致溢出的原始查询的速度tempdb。 我对SQL 2008 R2的解决方案感兴趣,但是我想对于SQL 2008,SQL 2005可能是相同的,并且可能是SQL 2000。 说明: 该框上没有其他应用程序在运行,它专用于SQL Server。网站在单独的框中运行。 它是Windows Server 2008 R2 Enterprise 64位上的SQL Server 2008 R2 Standard Edition 64位。 …

3
SQLITE:标签和产品问题
我正在寻找一种创建查询以执行以下操作的方法: 让我们考虑3个表: 产品:产品清单 标签:标签列表 tag_ties:用于将标签与产品关联的表 让我们为每个表考虑以下结构: 产品: id(int,自动递增) 名称(varchar,产品名称) 标签: id(int自动递增) 标签(varchar,标签的标签) 标签: id(int,自动递增) tag_id(整数,引用标记ID) ref_id(int,引用产品ID) 我想要的是: 获取所有带有标签ID 10、11和12的产品。 该查询不起作用,因为它返回具有至少一个标签的产品: select p.name as name, p.id as id from products p inner join tag_ties ties on p.id=ties.ref_id where ties.ref_id=p.id and ties.tag_id in (10,11,12) group by p.id order by p.name asc
10 query  sqlite  subquery 

3
查询问题:只能有一个自动列
有人可以告诉我此表定义有什么问题吗? mysql版本是5.1.52-log root@localhost spoolrdb> create table spoolqueue ( queue int, idx bigint not null auto_increment, status smallint, querystring varchar(2048), contenttype varchar(255), characterencoding varchar(16), body text, primary key(queue,idx) ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
10 mysql  query 

2
无法解释的InnoDB超时
我最近看到一些非常基本的更新超时,并且无法确定原因。一个例子: //#查询时间:51锁定时间:0已发送的行数:0已检查的行数:0 UPDATE photos SET position = position + 1 WHERE (photo_album_id = 40470); 同一日志中没有Lock_time> 0的条目。运行show innodb status也不会显示任何相关的锁。根据我的应用服务器日志(显示Mysql::Error: Lock wait timeout exceeded与mysql-slow日志中的每个对应条目相关的错误),此问题似乎正在影响至少5个不同的表。 有什么想法从这里去吗?我四面八方。谢谢。 编辑: 创建表`照片`( `id` int(11)NOT NULL auto_increment, `type` varchar(255)NOT NULL, `photo_album_id` int(11)非空, `user_id` int(11)NOT NULL, `title` varchar(255)默认为'Untitled', `description`文字, `credit` varchar(255)默认为NULL, photo_file_name varchar(255)默认为NULL, `photo_content_type` varchar(255)默认为NULL, `photo_file_size` int(11)默认为NULL, `photo_updated_at`日期时间默认为NULL, `position` …

3
如何检索外键约束数据
我正在寻找一个查询,该查询允许检索整个架构的外键信息(每行:引用表和字段,引用表和字段)。 我已经找到了,但是没有提供我需要的所有信息:https : //stackoverflow.com/questions/4389228/sql-for-oracle-to-check-if-a-constraint-exists 我目前正在研究它,可能在接下来的几分钟/几小时内得到解决方案。但是,如果有人已经有了完整的工作解决方案,我将很高兴知道:)

3
查询最佳匹配并排序
我正在尝试按照以下方式编写查询: select * from tbl where col1 = 1 and col2 = 2 and col3 = 3 order by ... ; 我首先要获得所有3个WHERE条件都匹配(3/3)的所有结果,然后要获得任何2个条件都匹配(2/3)的所有结果,最后要获得任何1个条件都匹配(1/3)的所有结果。 这3个结果集中的每个都需要按排序(col4, col5, col6)。 我可以在一个查询中做到吗? 例如: 样本http://img708.imageshack.us/img708/1646/sampletableresult1.jpg 创建测试数据的脚本: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U')) DROP TABLE [dbo].[MyTable] GO CREATE TABLE dbo.MyTable …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.