我有一个简单的表,其中包含学生编号和相应的教师编号,并且需要对它进行规范化,以输入到旧版系统中。
例如,下面是数据现在的样子:
StudNumber TeacherNumber
445 57315
445 88584
445 95842
858 88115
858 65443
858 57315
858 21144
858 18657
858 88584
311 64521
665 35512
665 57315
665 15546
我希望它看起来像这样,将每个Teacher分成一个单独的列,从左到右填充各列。一个业务规则是,每个学生最多只能有六位老师:
StudNum Teacher1 Teacher2 Teacher3 Teacher4 Teacher5 Teacher6
445 57315 88584 95842
858 88115 65443 57315 21144 18657 88584
311 64521
665 35512 57315 15546
原始表中有10,000多行,因此我需要以编程方式执行此操作。谢谢!
您可以使用数据透视。您还需要“排名”您的老师1-6。请参阅我对您要如何执行操作的评论。目前:
Select StudNumber, TeacherNumber, TeacherRank
from (
Select ST.StudNumber
, ST.TeacherNumber
, ROW_NUMBER() OVER (PARTITION BY ST.StudNumber
ORDER BY ST.TeacherNumber) AS TeacherRank
From StudentTeacher AS ST)
Where TeacherRank <=6
然后,您可以根据该语句进行操作。这是一个很好的解释:使用数据透视和取消透视
非规范化数据不存储规范化的数据。换句话说非规范化意味着相同数据的多个拷贝同时存在。 上一章中,我们在帖子中非规范化评论总数,以避免每次都加载所有的评论。在数据建模意义上说这是冗余的,因为我们可以通过计数每个评论,随时计算出该总数(当不考虑运行速度)。 非规范化通常意味着额外的开发工作。在例子中,我们每次添加或删除评论时,还需要同时更新相关的帖子,以确保 commentsCount 字段保持准确。这
问题内容: 用例说明 我们有一个关系数据库,其中包含有关我们日常运营的数据。目的是允许用户使用全文本搜索引擎来搜索重要数据。数据经过规范化,因此不是进行全文查询的最佳形式,因此,其想法是对数据的一部分进行规范化,然后将其实时复制到Elasticsearch,这使我们能够创建快速而准确的搜索应用程序。 我们已经有了一个启用数据库操作(插入,更新,删除)事件搜索的系统。这些事件仅包含已更改的列和主键(
问题内容: 我正在使用Ruby on Rails 3.0.7和MySQL5。在我的应用程序中,我有两个数据库表,即TABLE1和TABLE2,并且出于性能原因,我对TABLE2中的某些数据进行了非规范化,因此我在该表中重复了TABLE1的值。现在,在TABLE1中,我需要更新一些涉及的值,当然,我还必须在TABLE2中正确地更新非规范化的值。 我该如何以高效的方式更新这些值? 也就是说,如果TAB
我阅读了cassandra数据建模,除了非规范化数据可能会发生变化之外,一切都很清楚。我如何同步它?当用户电子邮件更改时,更新的方法是什么: < code>groupname是组的一部分,数据模型中的用户可能不知道任何组,因此在用户更改后无法更新电子邮件。 下面描述的解决方案是否合适? 向用户模型中添加一列(类型
问题内容: 好的,我刚开始使用Firebase。我已阅读:https://www.firebase.com/docs/data- structure.html, 并且已阅读:https://www.firebase.com/blog/2013-04-12-denormalizing- is- normal.html 所以我很困惑,因为一个似乎与另一个矛盾。您可以按层次结构组织数据,但是如果您想使其
问题内容: JPA规范是否允许对非主键列的简单引用? 我想在引用中使用在Countrys表上有一个简单的替代/自然键(UNIQUE,NOT NULL)列iso_code,但是Eclipse的Dali显示了验证错误,并且Hibernate抛出了MappingException。 是否允许这种常见情况? 问题答案: @axtavt:看来您的答案不正确。我刚刚收到了来自“ Pro JPA 2.0”作者的