小编RDF*_*ozz的帖子

SUM() 忽略 GROUP BY 并总结 4 行而不是 2

GROUP BY在 MySQL中遇到困难。

我的数据库设置:

client_visit
    - id
    - member_id
    - status_type_id (type_of_visit table)
    - visit_starts_at
    - visit_ends_at

member
    - id

schedule_event
    - id
    - member_id
    - starts_at
    - ends_at

type_of_visit
    - id
    - type (TYPE_BOOKED, TYPE_PRESENT etc)
Run Code Online (Sandbox Code Playgroud)

就这个问题而言:a在给定时间member教一门课或领导一项活动 (a schedule_event)。Aclient报名参加此课程或活动。

例如:

客户 A、B 和 C 预订访问,而那些访问client_visitschedule_event_id和组成的表member_id,因此我们知道哪个班级和哪个成员正在教授/或进行活动。

现在,我们想知道给定成员花费在客户注册的教学/领导活动上的总时间(基于client_visit type_of_visit相当于“预订”或“出席”的列)。我们将把成员 ID 82 作为我们的测试用例。

会员 ID 82 在两个不同的班级有 4 个客户,所以如果每个班级花费 2 小时 15 分钟(8100 秒),那么总时间应该是 16200 秒。

首先是我的查询: …

mysql group-by sum

6
推荐指数
2
解决办法
3万
查看次数

如何确保我始终连接到 MongoDB ReplicaSet 中的主/次节点?

我有一个运行在 3 个不同服务器上的 3 节点副本集。我已经完成了设置,一切都很好。现在我想给我的用户两个连接字符串:

  1. 连接到这个“xyz”进行写入

  2. 连接到此“abc”以获取只读流量

我还尝试为每个连接设置一个 CNAME,以便将来能够灵活地更改。

提前感谢并感谢您的时间。

mongodb

6
推荐指数
1
解决办法
2万
查看次数

SSMS 无法显示此任务的编辑器(通知操作员任务)

每当我双击 SSMS 维护计划中的通知操作员任务时,我都会收到一条错误消息,显示“无法显示此任务的编辑器” 。

属性 IsMailHost 不可用于数据库“[msdb]”。该对象的该属性可能不存在,或者由于访问权限不足而无法检索。(微软.SqlServer.Smo)

数据库邮件已配置并且工作正常。

我正在使用 SQL Server 2016 (13.0.4411.0) 和 SSMS 13.0.16106.4。

通过 PowerShell 询问 IsMailHost 属性似乎表明 IsMailHost 属性为 true。

$db = SqlServer\Get-SqlDatabase -ServerInstance sqlserver1 -Name msdb
Write-Host $db.IsMailHost
Run Code Online (Sandbox Code Playgroud)

上面的脚本返回True

如果我尝试在旧的 SQL 2008 服务器上使用 SSMS 10.0.5538.0 打开通知操作员任务,它工作正常,但使用 SSMS 13.0.44110.0,我会收到相同的错误消息。我开始认为这是 SSMS 构建的错误,而不是服务器的配置问题。

sql-server ssms database-mail sql-server-2016

5
推荐指数
1
解决办法
1275
查看次数

找工作叫另一个工作

我们有一项工作没有计划运行,但我们怀疑是另一项工作启动了它。没有作业历史记录,但它确实出现在错误日志中。我们如何知道这是否正在被另一个工作调用?我知道我们可以使用 sp_start_job 在作业步骤中立即调用作业,但如果是这种情况,我们如何找到它?

而且,为什么运行的作业没有任何历史记录?

Error log entry:

2017-05-01 10:01:50.40 spid6s         SPID: 131 ECID: 0 Statement Type: ALTER INDEX Line #: 1
2017-05-01 10:01:50.40 spid6s         Input Buf: Language Event: EXECUTE [msdb]. dbo.IndexOptimize @Databases = 'Database1,Database2'
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server jobs

5
推荐指数
1
解决办法
2359
查看次数

如何使用 Azure Data Studio (macOS) 生成本地数据库的实体关系 (ER) 图?

我发现了SQL Server Management Studio类似问题。但我在 macOS 上使用最新的 Azure Data Studio。我们使用本地 SQL Server(不是 Azure 云)。

如何使用 Azure Data Studio 从现有数据库生成 ERD?

erd sql-server azure-data-studio

5
推荐指数
1
解决办法
5450
查看次数

如何使用 SQL 获取“每秒平均查询数”(而不是“mysqladmin 状态”)

当我启动时mysqladmin,它会打印出一些统计信息,包括“每秒平均查询数”:

# mysqladmin --defaults-file=../mylogin.cnf status
Uptime: 4568115  Threads: 859  Questions: 3703806462  Slow queries: 19415  Opens: 10300505  Flush tables: 247  Open tables: 2000  Queries per second avg: 810.795
Run Code Online (Sandbox Code Playgroud)

我可以在 SQL 查询中检索“每秒平均查询数”值吗?我们使用 MariaDB 10.1.x

mysql mariadb mariadb-10.1

4
推荐指数
1
解决办法
3774
查看次数

SQL Server 无法在域名中创建带有破折号的用户

我正在 SQL 服务器中创建代理用户。我运行下面的 SQL 但它失败了,因为我的域名中有破折号。

CREATE LOGIN [ABC-SEN-DEA\proxyssisuser] WITH PASSWORD='Password'
Run Code Online (Sandbox Code Playgroud)

消息 15006,级别 16,状态 1,第 1 行
“ABC-SEN-DEA\proxyssisuser”不是有效名称,因为它包含无效字符。

请帮助如何纠正此错误。

sql-server ssis

2
推荐指数
1
解决办法
2455
查看次数

这个 INSERT 语句会起作用吗?教科书上的勘误?

我正在参加 Microsoft 认证 70-461 的模拟测试,并想确认我所看到的是否是错误(这是来自 Microsoft Press 的官方书籍,第九次印刷。我在现有勘误表中没有看到这一点)。

题:

您正在向Hovercraft数据库添加表。您可以使用以下语句创建表:

  Create Table Hovercraft.Testing
  ( TestIdentifier uniqueidentifier
  DEFAULT NEWSEQUENTIALID() PRIMARY KEY,
  HullId tinyint NOT NULL,
  TestDate date NOT NULL,
  Registration nvarchar(8) NOT NULL,
  Notes nvarchar(max)
  )
Run Code Online (Sandbox Code Playgroud)

您可以使用以下哪个语句向该表中插入数据?(每个正确答案都提供一个完整的解决方案。选择两个。)

选择是:

  1. INSERT INTO Hovercraft.Testing (Notes, HullID, TestDate, Registration,) VALUES (N'Hovercraft requires maintenance.', 142, '20120715', N'AAA320')

  2. INSERT INTO Hovercraft.Testing (HullID, TestDate, Registration, Notes) VALUES (124, '20120722', N'AAA321', N'Hovercraft in good condition. Next service in six months' time')

  3. INSERT INTO Hovercraft.Testing (HullID, TestDate, Registration, …

sql-server errors

2
推荐指数
1
解决办法
177
查看次数

dm_db_index_operational_stats 显示比扩展事件报告更多的阻塞

我已经实现了 XE 来捕获我的实例上的阻塞(根据这篇很棒的文章https://www.brentozar.com/archive/2014/03/extended-events-doesnt-hard/#comment-2470072。)

我这样做是因为我一直关注阻塞状态,使用查询的这种美:

select 
   db_name(database_id) DB, 
   object_name(object_id) Obj, 
   row_lock_count + page_lock_count No_Of_Locks, 
   row_lock_wait_count + page_lock_wait_count No_Of_Blocks, 
   row_lock_wait_in_ms + page_lock_wait_in_ms Block_Wait_Time_in_ms, 
   index_id
from 
   sys.dm_db_index_operational_stats(NULL,NULL,NULL,NULL) 
order by 
   Block_Wait_Time_in_ms desc
Run Code Online (Sandbox Code Playgroud)

偶尔会在文件中记录一些阻塞,但没有我预期的那么多。我的期望是查询中 No_Of_blocks 中的数字将与根据 XE 记录到文件中的块数相对应。

与查询相比,XE 是否可能无法捕获任何内容?有任何想法吗?感谢您的反馈意见!

sql-server extended-events blocking

2
推荐指数
1
解决办法
215
查看次数

使用比备份文件少的数据还原数据库

我对 DBA 和 SQL 没有真正的经验,所以我需要你的一些建议。

我有一个生产数据库备份文件,但是它非常大,所以当我执行恢复时,例如,在测试环境中制作数据副本 - 恢复需要很长时间。

我读到:是否可以从备份中部分恢复数据?

它与我想做的类似,但不完全等效。

为了清楚起见,我需要回答以下问题:是否有可能用比备份文件中更少的记录来恢复数据库?

比如备份文件表有100万条记录,我只想恢复1k条记录。

sql-server backup restore sql-server-2012

2
推荐指数
1
解决办法
335
查看次数