我是一名电气测试工程师。使用C的编程经验,主要用于具有256B或更少RAM的设备。并且没有很多SQL数据库的经验...
我们有一个包含生产数据,序列号和测试结果的数据库。 在创建数据库时,没有创建工具来检索数据。 如果我们无法检索数据,那么数据库也可能不存在。
我们有数据,数据库存在。我想创建检索和解释数据的工具。并在将来对数据进行统计分析。
该数据库拥有超过500,000个独特设备。超过1000万次测量。
我的问题是:什么是检索和显示数据最灵敏的方式?
例如:一个循环遍历每个条目并记录数据的程序将很难编写,并且需要数天才能完成。
程序和查询变得非常复杂。
我们有设备类型,批号,序列号。
For every DISTINCT (DeviceType)
For Every DISTINCT (Batch number)
COUNT DISTINCT (Serial number) where...
NOT IN User <> 'development'...
AND Testing result <> 'FAIL'...
AND Date between ... and ...
更不用说测量数据,因为每个设备可能会被多次测试。这似乎是一项微不足道的任务,我现在已经被复杂性所淹没。
我将自己创建代码和查询。我要问的是帮助找到一个策略。
答案 0 :(得分:1)
通过求助数据,问自己想要回答哪些问题。如果以尽可能最细微的方式记录数据,则考虑常见的分组或聚合方法可能是适当的。这些可能包括按设备或位置或其他方式进行分组 - 这些维度中的每一个都将具有业务解释。
写下3个最重要的业务请求应该为您提供构建提取/分析策略的起点。
接下来,尝试将数据模型绘制在一起,找出存在哪些表,它们之间有哪些引用和关系。
在您想要回答的问题和表格设计之间,您应该能够开始构建合理的通用查询。
有时您可能会发现可以使用公共数据视图来回答不同的业务问题 - 当您对提取路径感到满意时,可以使用名为SQL的通用查询语言来编写此问题,并且 - 如果适当的,使用该语言创建一个VIEW。这抽象了问题,使用户更方便地获得他们正在寻找的答案。
您的数据库将提供编写和运行SQL语句的工具,您需要参考数据库的文档来确定它是如何发生的 - 它通常是类似的,但实现方式因数据库而异。