AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-60415

user45867's questions

Martin Hope
user45867
Asked: 2024-10-06 05:55:09 +0800 CST

如何创建要删除的 SQL Server 数据库的最小压缩备份?

  • 6

我需要最小化 SQL Server 存储以准备迁移到云。

大约有 10 个数据库,其中 99% 可能是垃圾/需要删除。也许 100%。报告数据库。

进行 6 个月的某种压缩“备份”的最佳方法是什么?... 总共大约 500 GB... LDF 和 MDF 文件够用吗?(不会节省存储空间,但可以放在便宜的地方)。

它大多数情况下是无用的,但偶尔可能需要一些边缘情况才能将其上线。可能性不大,但有可能。

我认为可能有足够的备份选项。我不需要时间点或任何花哨的东西。只要“这是此日期(比如今天)的 10 个数据库,以防万一”。这些数据库基本上是自包含的报告数据库 - 而不是复杂的应用程序。我知道可能会以某种方式发生损坏,但我愿意冒这个险。

这也是一个令人尴尬的旧版本的 SQL Server,如果相关的话,是 2014 年的。

sql-server
  • 1 个回答
  • 64 Views
Martin Hope
user45867
Asked: 2024-10-04 01:36:30 +0800 CST

是否可以在特定驱动器上分叉 SQL Server 数据库?

  • 5

我在一台服务器(比如说 C 盘)上托管的 SQL Server 实例中拥有各种数据库。

目的是将其中的一小部分迁移到云提供商 AWS。

因此,假设我在实例中有 2 个数据库。db_junk 和 db_migrate。

为了执行迁移,IT 代理希望我将“db_migrate”从服务器上的 C 盘移至 D 盘。因为他们想要迁移整个驱动器,而不是迁移 db_junk(需要付费,而且是垃圾)。

可以这样做吗?... 有没有更简单的方法来实现这一点?我认为也许有一种更简单的方法可以将 SQL Server 特定的数据库从本地迁移到 AWS 托管的 SQL Server(相同版本),而无需执行此操作。

但不管怎样,如何才能实现这一目标呢?

编辑:最终目标是将 db_migrate 从 C 盘迁移到 AWS。

然而,我的任务是实施一个特定的部分 --- 从 C 盘到 D 盘,实际上是在同一台机器上,因为我相信下一个人更喜欢将“整个驱动器”迁移到 AWS,就像在他们的驾驶室一样。... 对于 C 盘来说这是不可能的,因为它包含膨胀和其他不打算迁移的组件。

sql-server
  • 1 个回答
  • 48 Views
Martin Hope
user45867
Asked: 2023-11-14 23:28:53 +0800 CST

SQL 模式获取不均匀层次结构数据集的“根/开始”

  • 5

我觉得这是一个常见问题,我什至在一些 SQL 挑战中也看到过它,但就我的一生而言,无法清楚地思考解决方案。

假设你的层次结构不均匀。属于其他元素但您不知道顶部的元素。

为了保持简单,我们假设这是一个公司组织结构图(实际上它是任务依赖关系,但是呃)。

所以就有了一张桌子。员工姓名和老板姓名。

Employee name: Bob .... Boss Name: Dora
Employee name Dora .... Boss Name: Kim

不断地。就我而言,还有一条附加信息。一个人只能向一个人汇报。一对一的关系。

链顶部有 N 个元素,其名称为:Whoever Boss:Null。

所以我正在做如下事情:

select employee_name, boss_name
from boss_table b1
left join boss_table b2 on b1.boss_name = b2.employee_name
left join boss_table b3 on b2.boss_name = b3.employee_name

不断地尝试找到每个员工的“根本老板”或“最高老板”。然而,其中一些嵌套元素非常深——我不想进行 20 个连接……或者至少把它们写出来——我觉得递归函数是显而易见的答案,但无法弄清楚——想法?

join
  • 1 个回答
  • 29 Views
Martin Hope
user45867
Asked: 2020-12-02 08:14:26 +0800 CST

具有默认完整备份模型和失控日志文件的经典傻瓜----我如何控制这个?

  • 1

嘿,我通常更像是一个开发 dba,但老 dba 离开了 --- 大约一年前他离开了,没有更换。

我终于开始真正了解其中一些服务器的底层——我不是生产 dba,但我运行了一些在网上找到的诊断程序,他们说我有很大的问题。

无论如何,我正在慢慢学习这些东西,但这似乎是一个常见问题——我在特定数据库上有完全恢复模式,但从不备份它——结果日志文件呈指数增长——我接受吗?

我有什么选择可以摆脱这种情况?

我正在猜测:

  1. 如果我做一个完整的备份或安排一个,在此之后日志文件会被清除吗?

  2. 我可以更改为简单的恢复模式吗?我知道这对恢复有影响——我对数据丢失很满意,因为这是一个 BI 数据库。这也会立即清除日志文件吗?除了切换到简单恢复模式之外,我是否需要做任何其他事情?

有什么方法可以监控这两个选项中的任何一个的进度吗?我猜要么会导致数据库开始占用资源做某事或其他事情。

谢谢!

sql-server backup
  • 2 个回答
  • 50 Views
Martin Hope
user45867
Asked: 2019-06-25 12:56:54 +0800 CST

SSIS 作业——如何创建重复 SSIS 作业的存储过程?

  • 0

嘿,我意识到我可能可以创建一个模块化父包,它在 Visual Studio 本身中重复 SSIS 作业....但我知道您可以使用 SSMS 中的存储过程执行 SSIS 包 -- 'exec ssisdb.catalog.create_execution @package_name=N 'myPackageName' .....等

对于像这样执行 SSIS 包的快速而肮脏的方法,说...“X”次...

有没有办法做到这一点?就像...在包装结束时,重复... X 次?

或者更简单,如果作业持续时间已知/可预测……“执行任务,等待 5 分钟……再次执行……X 次?”

sql-server stored-procedures
  • 1 个回答
  • 378 Views
Martin Hope
user45867
Asked: 2019-03-02 08:00:38 +0800 CST

允许轻松交换/安全/可访问的数据库连接的 SSIS 最佳实践?

  • 2

我来自 Pentaho PDI。

在那里,我学会了让脚本将数据加载到 [VariableDB]。

这样,我可以在运行时将 VariableDB 启动为“ProdDB”,甚至可以暂时将变量设置为脚本中的不同数据库。

重点是,除非一些主要的体系结构发生变化,否则我不必经常查看大量更改数据库名称的文件。

第二件事是安全。Pentaho 不是很好,但您至少可以存储一些数据库凭据是加密格式,并且它们在 GUI 中被阻止。“策划者”可以破解它,但无论如何他们都需要大量访问权限。

SSIS --- 好吧,它可能是相反的,也许不是。我不希望以纯文本形式存储任何数据库密码。与此同时,我的前任离开了——我不知道凭据在哪里。他们“扑通”不见了——我不知道。如果 SSIS 脚本和作业在同一个 SQL DB 服务器上运行,它们是否存储在某个地方?我不确定。

他们是否加密到他的用户名,现在他早已离开,无法恢复?

这不是很重要,因为我可以重新输入数据库凭据,但我期待未来。

我知道可能有几种方法可以做到这一点,但是如果我有 5 个指向“TheFinanceDatabase”的包,我可以轻松地换出数据库主机服务器、名称、用户、密码等,那么简单的方法是什么?

我认为它是配置文件和/或连接管理器——它们可以在同一个“项目?”的包之间共享。也许“项目”可以在同一个“解决方案”中共享连接凭证/指针?只是想知道这里 - 谢谢!

我想避免将来重新输入/丢失凭据。

sql-server ssis
  • 1 个回答
  • 890 Views
Martin Hope
user45867
Asked: 2019-02-02 14:10:23 +0800 CST

SSIS 包和 SQL 数据库应该在同一台服务器上吗?

  • 3

我对 SSIS 有点陌生。我在 SQL Server 上有很多“开发”、构建、查询、调整性能,但不是管理/整体性能建模的大师。

所以这是我的问题 --- SSIS 包是否应该在与数据仓库(SQL 服务器数据库)相同的服务器上运行?

一方面,我已经收到一条神秘的错误消息,即 SSIS 中的某些“批量插入”任务只能针对本地数据库运行。也许这可以解决。也许它不能而且更快,因此将 ETL 放在与 db 相同的盒子上。

第二 --- 即使可以解决这个问题,无论如何将 ETL 放在与数据库相同的服务器上不是更快吗?或者除非在地理上尽可能接近?(即不是不同的大陆)。

特别是,ETL 在一夜之间运行,而数据库不是在一夜之间运行的(但是可能是备份进程)——但我预计彼此之间不会有太多的绊脚石。

如果批量插入任务只能在本地数据库上完成,那么测试/开发环境是否也需要在数据库服务器上设置?只是想知道什么是明智的。这是一家较小的商店,但我们会做一些事情。

sql-server ssis
  • 1 个回答
  • 1766 Views
Martin Hope
user45867
Asked: 2018-11-28 15:29:49 +0800 CST

如何在同一行中获取行值和总和/聚合?(SQL 服务器)

  • 0

只是想知道我是否有类似的数据

 name  score
    A    2
    B    5
    C    7

我想要第三排

     name  score  total
        A    2     14
        B    5     14
        C    7     14

我的意思是最终 - 我想在各种总计中找到各种行条目的“z 分数”或百分位数。我只是不确定是否有一种简单的方法可以将行值与聚合值进行比较,除非通过子查询,例如

select A.name, A.score, B.total
from myTable A
left join
(select name, sum(score) from myTable group by name) B
on A.name = B.name

这可能有效,但查询同一个表两次以计算什么似乎效率低下。有没有我想念的更简单的方法?

sql-server select
  • 1 个回答
  • 4165 Views
Martin Hope
user45867
Asked: 2018-11-10 09:26:05 +0800 CST

如何在 PL/SQL Developer (Oracle) 中自动导出 CSV 查询?

  • 1

我不是 Oracle 或 PL/SQL Developer 的专家(我主要使用和管理 mySQL 和 MS SQL Server)。

我不是任何类型的管理员,但可以通过 PL/SQL Developer 读取 Oracle 中的许多表。

我需要能够安排以 CSV 格式自动(例如,每天)导出几个表(嗯,查询)。无论是我的本地计算机、网络、电子邮件——任何东西。

有谁知道这可能是如何实现的?

oracle export
  • 1 个回答
  • 11151 Views
Martin Hope
user45867
Asked: 2018-03-07 17:02:55 +0800 CST

SQL Query突然变慢---如何测试是网络问题还是硬件(内存)问题?

  • 0

我不是一般的 IT 专家。有时使用 SQL 查询……大约 95% 的时间它们将花费 10 秒。

每隔一段时间,完全相同的查询将花费 5-10 分钟。其他人也会。常量是主机和当前时间 --- 而不是查询本身。

我只是想知道我是否有任何方法可以测试或验证导致查询速度变慢的问题(并且确实减慢了查询速度)。我会远程进入主机并检查内存使用情况/进程吗?主机也在国外---美国到德国。同样,在 95% 的情况下,这无关紧要。我想知道是否存在暂时的“网络峰值”问题。我想知道,这样我就可以在那里向 IT 部门投诉……但我想准确指出导致查询问题的原因。也许这超出了本委员会的范围……我知道展示计划不会真正表明任何事情……或者会吗?网络或内存问题是否会在相同的持续时间内减慢所有步骤?有没有更简单的方法来解决这个问题?

sql-server
  • 1 个回答
  • 789 Views
Martin Hope
user45867
Asked: 2018-02-16 12:39:13 +0800 CST

SQL 查询 - 如何选择显示组、组总计、总计?

  • 2

我已经看到了一些建议,但想知道从数据表中选择组、组总计、总计的最佳方法,而不使用子查询或不必要的连接。

我最初的想法是这样的:

select   product_family, 
         sum(widgets), 
         sum(widgets) over ()
from     table.widget
group by product_family

或以下内容:

select   product_family, 
         sum(widgets), 
         sum(widgets) over (partition by all_field)
from     table.widget
group by product_family

显然这些都不起作用。我知道一个分区可以比实际的行/组具有更高的顺序,但不是如何按“全部”进行分区,而不是将其留空作为第一个示例。但是,它与 group by 语句中断。

我能找到的最好的是这样的:

select product_family, 
       family_sum, 
       sum(family_sum) over () as grand_sum 
from (
      select   product_family, sum(widgets)
      from     table.widget
      group by product_family
     ) as A

不过,这仍然涉及一个子查询,这没关系。我只是觉得我在这里缺少一个简单的功能。

sql-server group-by
  • 2 个回答
  • 3978 Views
Martin Hope
user45867
Asked: 2017-10-18 14:00:37 +0800 CST

为什么在 SQL Server 中“select *”比“select top 500 *”快?[复制]

  • 20
这个问题在这里已经有了答案:
'SELECT TOP' 性能问题 (2 个答案)
TOP 如何(以及为什么)影响执行计划? (2 个回答)
5年前关闭。

我有一个观点complicated_view——有一些连接和 where 子句。现在,

select * from complicated_view (9000 records)

比_ _

select top 500 * from complicated_view

我们说的是 19 秒与 5 分钟以上。

第一个查询返回所有 9000 条记录。仅获得前 500 名的时间怎么会长得离谱?

显然,我将在这里查看执行计划 ---- 但是一旦我弄清楚为什么SQL Server 以次优方式运行“前 500 名”,我实际上如何告诉它以快速的方式运行计划,喜欢吃满桌吗?

当然,我可能不得不完全重写视图 --- 但很奇怪。

基本上,我将此数据表连接到第 3 方软件,该软件使用select top 500 *无法修改的默认查询预检查表。所以除了把这个视图放到一个实际的表中(相当草率)——我也无法绕过他们的“前 500 名”附录。

这是 SQL Server 2012。

编辑:不同意重复标志。另一个问题,顶部比所有都快。这将是预期的行为,返回更少的行。我的情况正好相反。另外,我的理解是 Top 100 是与 Top 100+ 不同的算法。我什至不认为重复的问题有正确的答案。也就是说,TOP X 查询将在很早的时候对潜在的大量表进行排序,而不是在它们被聚合/过滤/等之后。为什么是一个谜,但如何清楚地存在。

sql-server performance
  • 1 个回答
  • 25154 Views
Martin Hope
user45867
Asked: 2017-10-06 13:57:06 +0800 CST

不相关的列会影响select语句的查询时间吗?

  • 10

我只是好奇。

假设您有一个包含 100 万条记录/行的表。

select order_value from store.orders

在实际查询时间中,该表是否有 1 个字段、2 个字段或 100 个字段有区别吗?我指的是“order_value”以外的所有字段。

现在我正在将数据推送到数据仓库。有时我将字段转储到表中“可能会在未来某一天使用”——但它们现在没有被任何东西查询。这些“无关”字段是否会直接或间接影响不包含它们的选择语句(不 * 我的意思是)?

sql-server performance
  • 2 个回答
  • 1110 Views
Martin Hope
user45867
Asked: 2017-09-27 11:58:44 +0800 CST

将数据仓库拆分为多个数据库的主要原因是什么?[复制]

  • 9
这个问题在这里已经有了答案:
出于性能原因,何时应将数据库拆分为 2-3 个数据库? (3 个回答)
5年前关闭。

我正在与一位同事合作,他建议将我们的 1 个实例数据库拆分为大约 7 个数据库(按数据域划分)用于开发和 7 个相同的数据库用于生产。我得到了测试-生产对偶逻辑,但是在什么情况下或将我们的 1 个相对简单的数据库拆分为 7 个数据库有什么优势?我们的数据仓库仅由一个商业智能应用程序使用/使用。

我很关心这个方向,所以希望你能讨论一下这个拆分的一般原因,我可以给你一个数据库当前属性的概要。

1 个数据库数据仓库:总共 352 GB,203 个表,170 个视图

建议拆分:

A: 280 GB
B: 43 GB
C: 28 GB
D: 1 GB
E,F,G: < 1 GB combined

正如您所看到的,就提议的好处而言,这已经是一个令人头疼的问题,因为存储甚至不会被远程平均分配,80% 剩余在一个数据库上。显然,按模式对数据库进行分区是不可能的(从硬件的角度来看),因为我们没有企业级 SQL Server。

拆分原因:

  1. 当前的数据库优化不佳,文档很少,数据类型次优,索引次佳。

我菜鸟的想法:这些问题不是和分库无关吗?它们只是需要以任何一种方式自行解决的问题。

  1. 当前数据库中有 372 个对象,这使得它变慢了。

我的想法:在我看来,这似乎并不大。

  1. 一个数据库比 7 个数据库更难记录和绘制模式图(我们将拥有跨越多个数据库的视图)。

我的想法:....这对我来说似乎完全荒谬,但也许我错了。我们已经通过 13 个“源系统”模式组织了我们的数据仓库。

  1. 一个数据库会导致更多的数据库死锁。

——这个问题不也和拥有多个数据库完全无关吗?据我了解,死锁发生在表级别(实际上通常甚至只是行级别,但是嗯)。即便如此,我们所有的数据插入都发生在午夜,我们在 BI 下游的所有选择都发生在凌晨 2 点。让两个进程更新同一个表与多个数据库无关,不是吗(无论哪种方式都会发生死锁)?此外,我个人没有看到在正常操作期间发生表死锁的证据。

  1. 数据库技术所有权/所有权。

只有我们两个人在数据库上工作。有可能他想真正隔离我们的“领地”。确实,这不是问题,但是无论如何不能在架构级别确定用户权限吗?

将数据仓库拆分为多个数据库的正当理由是什么?

很想在这里进一步了解我对一般数据库的了解。是的,我碰巧在我的知识空白处做了很多工作,但工作就是这样,我被推到了。到目前为止,东西一直很好用(敲木头)。

sql-server database-design
  • 2 个回答
  • 3598 Views
Martin Hope
user45867
Asked: 2017-08-30 14:20:09 +0800 CST

将 Fact 表加入 SCD 类型 2 ...如何编写查询?(SQL 服务器)

  • 0

我似乎在任何地方都找不到这个简单的事实。

我在 SQL Server 中有一个类似的事实表。

fact_picked
Emp_Name     Date     Apples_Picked
John        May 1 17    100

还有一个像这样的二维表

dim_company
Emp_Name   Company     Effective_Since
John      Blue_Apples      June 1 2015
John      Apple_N_Stuff    Jan 1 2016
John      Da_Big_Apple     March 17 2017
John      Big_Tech         October 20 2017

我如何将事实加入维度表,以便知道哪个“公司”挑选了 100 个苹果?

在这种情况下,从逻辑上讲,鉴于数据,它是“Da_Big_Apple”……因为 John 于 3 月 17 日开始在那里工作,直到 2017 年 10 月,他的苹果采摘任务就发生了。

我如何连接这些表呢?(假设有数千条记录)。

我只是卡住了。我知道我应该做类似的事情

Select fp.emp_name, fp.date, fp.apples_picked
from fact_picked fp
left join dim_company dc
on fp.emp_name = dc.emp_name
and fp.date > dc.effective_since .... ???

我想我不太确定。我想我可以使用视图将类型 2 转换为类型 4(表中有结束日期)。然后就更简单了。确保事实日期大于开始日期,但在结束日期之前。但这是最优雅的解决方案吗?

sql-server join
  • 1 个回答
  • 9042 Views
Martin Hope
user45867
Asked: 2016-11-01 13:40:29 +0800 CST

在每个“组”中找到“第二大”字符串

  • 1

我正在做一些数据分析,想找到一种简单的方法来按功能检查组中每个“组”的所有成员。

比如,一个订单可能涉及 3 个代理。我想快速检查一下出于各种原因按此顺序“分组”的三个特工。

通常,我会为此使用 group_concat(查看所有分组字符串的简单方法)。然而,目前在 SQL 服务器中使用“group by”复制它似乎很困难且笨拙。

现在,粗糙和肮脏,我会 max(username) 和 min(username) 快速找到 2(90% 的订单可能有 2 或更少的人。有没有办法做 mid(username) 或 2nd- highest(username), or percentile(50th, username)? 这将是找到这些相关数据的一种很好、快速的方法。出于某种原因,我之前看到的描述 SQL Server 上的 group_concat 的答案对我来说听起来并不简单。

示例数据例如:

employee  purchase_id
bill        1
bob         1
chrissy     1
mike        2
bill        2
bob         3

目前我有这个:

purchase_id, employee_count, complicated metric
1                 3              blahblah
2                 2                dsflsajf
3                 1                98%

我想看一眼:

purchase_id, employees, complicated metric
1            (bill,bob,chrissy)   blahblah

然而,group_concat 似乎很难与 group by 语句一起使用 - 或者用 SQL Server 模拟 group_concat。所以相反,这个怎么样。

选择最大(员工),最小(员工)

purchase_id,  max(employee), min(employee)
1              bill            chrissy

在示例中,您看到 bob 被省略,因为 max/min 只会找到两个端点。如果有某种函数可以提取字符串的第二高值或第 50 个百分位值,那将会很有帮助。

sql-server
  • 2 个回答
  • 82 Views
Martin Hope
user45867
Asked: 2016-07-07 07:05:29 +0800 CST

如果视图 A 构建在其他视图和表之上,用户是否需要仅查看 A 的权限,或者查看所有内容?

  • 2

我特别在谈论 SQL Server。我想一个用户尝试了它并得到了一个错误(你没有在查询中明确提到的隐藏底层视图 B 的选择权限)。主视图 A 将一个表和另一个视图(视图 B)连接在一起,它们没有视图 B 的权限。

我不负责数据库的权限,但我很好奇它是如何工作的。

您是否需要授予视图下构建的每个对象的权限?还是只是视图本身?还是其中之一?

我认为视图的目的之一是您不想为其授予完全权限的基础对象的快照。这对我来说很不寻常。

sql-server permissions
  • 2 个回答
  • 2776 Views
Martin Hope
user45867
Asked: 2016-04-29 15:07:11 +0800 CST

让非技术用户修改数据库的简单方法?

  • 1

我们正在设计一个 BI 解决方案。

我们遇到的一个问题是,很多 HR 信息(开始日期、部门、部门变更日期、工作时间等)在我看来似乎是手动维护在 Excel 电子表格中。不用说它缺乏标准化、验证、容易出错、缺乏完整性等。不好。

我不确定改善这一点的最直接方法。我们目前使用缺少 API 的 HR 软件。而且我什至不确定它是否包含所有必要的数据字段或输入验证。

在一个理想的世界中,我可以只要求我们找到具有 API 和数据验证的新软件。但我没有看到这种情况发生。但也许这是唯一的解决办法。

否则,我正在尝试考虑一个简单的解决方案,用户可以在其中查看当前数据库(ID、员工姓名、开始日期、部门等)......并可能直接进行更改,或者至少提出要批准的更改. 某种输入至少具有基本的检查和验证、时间戳更改以及创建者等。

我知道这是一个非常开放的问题,但是什么是可能的直接解决方案?

理想情况下,我不想从头开始拼凑一些应用程序,至少不要太多。

不可能是这里的第一家尝试逐月跟踪部门人数和成本的企业。

归根结底,很多这样的东西确实必须在某个时候由人输入。如果有人更换部门,这在很大程度上是一种抽象。计算机系统可能不知道某人是否从工作岗位转到市场营销部门,现在从事销售工作。一个人将不得不在某个地方(理想情况下是专用应用程序,但不一定)输入此更改——人、更改、生效日期。真正需要的是应用程序、我自己或其他开发人员可以实施的更好的验证控制和业务规则。

例如 --- 员工 ID 不重复。(既不给 Mark 和 John 相同的 ID,也不给 Mark 两个不同的 ID)。一名员工在给定时间仅在 1 个相关部门/部门下工作。轻松查看和管理更改(也就是离开日期不正确,更改历史记录和更新时间戳会很有用)。也许可以利用一些体面的工资单/会计软件。我的意思是,这不是重新发明轮子,我想知道成熟的/财富 500 强公司如何管理这一点。可能是专用软件,但是嗯。

问题是数据库需要这些信息。目前它从一个垃圾 Excel 电子表格中接收它。我正在尝试找到确保信息不是垃圾的方法。这需要在垃圾被提交到链下之前以限制或警告的形式向最终用户完成。至少也许我可以给他们发一份 Excel 表格,在单元格中有自己的验证,但从长远来看,这很不合适。

data-validation
  • 1 个回答
  • 160 Views
Martin Hope
user45867
Asked: 2016-02-12 15:25:29 +0800 CST

如何为缺少的日期创建添加行的视图?

  • 4

我不确定如何准确地表达这个问题。

本质上,假设我在不同的销售团队中有一群销售人员。比如,蓝色区域、橙色区域、红色区域等等。

现在,这些销售人员每个人都连接到一个销售区域,但有时可能会随着时间的推移而改变销售区域。

假设 Bob Jones 在 2015 年 1 月、2015 年 2 月、2015 年 3 月在蓝色区域,但在 2015 年 4 月,他去了绿色区域。

因此,我正在尝试创建一个报告,该报告将根据地区汇总销售收入(即使在技术层面,它已记录到销售人员)。

所以我们会有交易(表:employee_sales)数据如下:

name           date                 sales
Bob Jones      February 18th, 2015   $50,000

等等等等

因此,为了按地区聚合,我需要一个辅助维度表,如下所示(请记住,地区会随时间变化)(表:employee_region)

name         region      month      year
Bob Jones    Blue        January    2015
Bob Jones    Blue        February   2015
Bob Jones    Blue        March      2015
Bob Jones    Green       April      2015

然后我可以简单地做一个查询:

select er.region, er.month, er.year, sum(es.sales)
from employee_sales es
inner join employee_region er
on es.name = er.name and month(es.date) = er.month and year(es.date) = er.year
group by er.region, er.month, er.year

所以这会给我我需要的数据。

但是,现在我遇到了一个问题 --- 假设我有 500 名员工并且 REGION 数据延迟一个月更新。所以现在,2016 年 2 月,我们只有 2016 年 1 月的地区数据。

我想做的是……当月(2016 年 2 月)……如果区域的“帮助表”中的数据在该月丢失,则取上次找到的月份(可能是一月,但有时甚至可能是 12 月或 11 月)。

我不确定在这里做什么。创建某种视图?

我是否重组“帮助表”,使其更像是一个不平等声明?

编辑:我认为这是一个缓慢变化的尺寸问题。嗯,我可能必须重新组织维度表。

sql-server sql-server-2012
  • 2 个回答
  • 483 Views
Martin Hope
user45867
Asked: 2016-01-07 07:52:14 +0800 CST

SQL Server - 授予整个架构与对象的权限?

  • 44

当谈到 SQL Sever 中的数据库权限管理世界时,我非常喜欢。

让我们保持一个简单的例子。

假设帐户“admin”是模式 A、B 和 C 的所有者。

还有另一个帐户“minion”,您希望对在模式 A、B 和 C 下创建的任何对象(表/视图)拥有完全权限(更新/删除/插入/选择/更改)。

这可能吗?还是每次在这些模式下添加表/视图时都必须执行授权语句?(对我来说似乎有点傻)。

sql-server permissions
  • 2 个回答
  • 164112 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve