如何实现数据库的行列转换, 原作者fly115

高速信号设计进阶指南:从仿真到PCB Layout到测试验证 在硬件工程实践中,单纯保证“线能连通”已远不能满足现代高速电路的设计要求。随着信号边沿速率不断提升,传输线效应、阻抗匹配与回流路径成为决定信号完整性的关键。理解如何基于等效频率判断高速信号,掌握信号完整性仿真与PCB Layout规则,是硬件工程师实现工程化设计进阶的核心路径。从DDR并总线到PCIe/SerDes串链路,仿真前端的约束提取与后仿真验证,能显著降低多板联调阶段的风险。通过TDR阻抗测试、眼图与误码率测试,还能反向校准设计模型,形成完整的闭环流程。本文系统梳理高速信号设计的关键技术栈,帮助 阅读详情
行列转换实例
                  表ttt有三个字段
                  seq  
--序列
                  jcxm --检查项目
                  zhi  --

                  数据分别如下:
                  seq   jcxm       zhi
                  
-------      --------          --------
                  11     1    0.50
                  
11     2    0.21
                  
11     3    0.25
                  
12     1    0.24
                  
12     2    0.30
                  
12     3    0.22                             

                  实现功能
                  创建视图时移动行值为列值


                  
create view v_view1
                  
as
                  
select seq,
                         
sum(decode(jcxm,1, zhi)) 检测项目1,
                         
sum(decode(jcxm,2, zhi)) 检测项目2, 
                         
sum(decode(jcxm,3, zhi)) 检测项目3 
                  
from ttt
                  
group by seq;

                  序号 检测项目1  检测项目2  检测项目3
                  
11     0.50    0.21     0.25
                  
12     0.24    0.30     0.22

 

                  技巧:
                  用THEN中的0和1来进行统计(
SUM

                  jcxm   zhi
                  
----   ----
                  a           1
                  b           
1
                  a           
3
                  d           
2
                  e           
4
                  f           
5
                  a           
5
                  d           
3
                  d           
6
                  b           
5
                  c           
4
                  b           
3
                  求他的zhi既是1,也是3,也是5的jcxm
                  方法一
                  
select jcxm
                  
from ttt
                  
group by jcxm
                  
having sum(decode(zhi,1,-1,3,-1,5,-1,0)) = -3
                  方法二
                  
select jcxm from ttt 
                  
group by jcxm having (sign(sum(decode(zhi,1,-1,0)))+
                  
sign(sum(decode(zhi,3,-1,0)))+sign(sum(decode(zhi,5,-1,0)))<=-3);

                  
----------
                  a
                  b
                  说明:
                  
sign()函数根据某个值是0、正数还是负数,分别返回0、1-1
                  所以可以用sign和decode来完成比较字段大小来区某个字段
                  
select decode(sign(字段1-字段2),-1,字段3,字段4) from dual;

                  sign是一个对于写分析SQL有很强大的功能
                  下面我对sign进行一些总结:
                  但属性student取0和1以外的值,或者student取两个以上的标法值,问题就不会这么简单了
                  解决办法就是特征函数(
abs(),sign())

                  常用的特征算法
                  [A=B]=
1abssign(A-B))
                  [A!=B]=
abssign(A-B)) 
                  [A
<B]=1sign1sign(A-B)) 
                  不能用
-sign(A-B):因为如果不满足A<b则返回-1,而不是0,这样就不能用在字段选择上了
                  [A
<=B]=sign(1sign(A-B))
                  [A
>B]=1sign1sign(A-B))
                  [A
>=B]=sign(1sign(A-B)))
                  [NOTα]=
1-d [α]
                  [αANDb ]=d [α]
*d [b ] (6)
                  [αOR b ]=
sign(d [α]+d []

                  例如:
                  A
<B                         Decode( Sign(A-B), -110 )      
                     
                  A
<=B                         Decode( Sign(A-B), 101 )      
                     
                  A
>B                         Decode( Sign(A-B), 110 )       
                    
                  A
>=B                         Decode( Sign(A-B), -101 )     
                      
                  A
=B                         Decode( A, B, 10 )         
                  A 
between B and C      Decode( Sign(A-B), -10
                  Decode(
Sign(A-C), 101 ))         
                  A 
is null                       Decode(A,null,1,0)         
                  A 
is not null                 Decode(A,null,0,1)         A in 
                  (B1,B2,,Bn)  Decode(A,B1,
1,B2,1,,Bn,1,0)         
                  nor LogA                    Decode( LogA, 
010 )            
                    (
1-Sign(LogA)) 
                  LogA 
and LogB            LogA * LogB 
                  LogA 
or LogB              LogA + LogB 
                  LogA xor LogB            Decode(
Sign(LogA),Sign(LogB),0,1)    
                  Mod(
Sign(LogA),Sign(LogB),2


                  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

                  
[NextPage]
                  另外一个关于成绩的分析例子

                  
SELECT
                  
SUM(CASE WHEN cj <60 THEN 1 ELSE 0 ENDas "not passed",
                  
SUM(CASE WHEN cj BETWEEN 60 AND 79 THEN 1 ELSE 0 ENDas 
                  "passed",
                  
SUM(CASE WHEN cj BETWEEN 80 AND 89 THEN 1 ELSE 0 ENDas 
                  "good",
                  
SUM(CASE WHEN cj >=90 THEN 1 ELSE 0 ENDas "Excellent"
                  
FROM cjtable;

                  decode用法2
                  表、视图结构转化
                  现有一个商品销售表sale,表结构为:
                  
month    char(6)      --月份
                  sell    number(10,2)    --月销售金额

                  现有数据为:
                  
200001  1000
                  
200002  1100
                  
200003  1200
                  
200004  1300
                  
200005  1400
                  
200006  1500
                  
200007  1600
                  
200101  1100
                  
200202  1200
                  
200301  1300

                  想要转化为以下结构的数据:
                  
year   char(4)          --年份
                  ------------   ---------------------         
                  -------------------
                  month1  number(10,2)   --1月销售金额
                  month2  number(10,2)   --2月销售金额
                  month3  number(10,2)   --3月销售金额
                  month4  number(10,2)   --4月销售金额
                  month5  number(10,2)   --5月销售金额
                  month6  number(10,2)   --6月销售金额
                  month7  number(10,2)   --7月销售金额
                  month8  number(10,2)   --8月销售金额
                  month9  number(10,2)   --9月销售金额
                  month10  number(10,2)     --10月销售金额
                  month11  number(10,2)     --11月销售金额
                  month12  number(10,2)     --12月销售金额

                  结构转化的SQL语句为:
                  
create or replace view
                  v_sale(
year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
                  
as
                      
select 
                      substrb(
month,1,4),
                      
sum(decode(substrb(month,5,2),'01',sell,0)),
                      
sum(decode(substrb(month,5,2),'02',sell,0)),
                      
sum(decode(substrb(month,5,2),'03',sell,0)),
                      
sum(decode(substrb(month,5,2),'04',sell,0)),
                      
sum(decode(substrb(month,5,2),'05',sell,0)),
                      
sum(decode(substrb(month,5,2),'06',sell,0)),
                      
sum(decode(substrb(month,5,2),'07',sell,0)),
                      
sum(decode(substrb(month,5,2),'08',sell,0)),
                      
sum(decode(substrb(month,5,2),'09',sell,0)),
                      
sum(decode(substrb(month,5,2),'10',sell,0)),
                      
sum(decode(substrb(month,5,2),'11',sell,0)),
                      
sum(decode(substrb(month,5,2),'12',sell,0))
                      
from sale
                      
group by substrb(month,1,4);

                  体会:要用decode 
/group by/ order by/sign/sum来实现不同报表的生成 
                  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                  CASE应用

                  
1        1        部门a        800        男
                  
2        2        部门b        900        女
                  
3        3        部门a        400        男
                  
4        4        部门d        1400        女
                  
5        5        部门e        1200        男
                  
6        6        部门f        500        男
                  
7        7        部门a        300        女
                  
8        8        部门d        1000        男
                  
9        9        部门d        1230        女
                  
10        10        部门b        2000        女
                  
11        11        部门c        2000        男
                  
12        12        部门b        1200        男

                    
SELECT jcxm as 部门,COUNT(seq) as 人数,
                      
SUM(CASE SEX WHEN 1 THEN 1 ELSE 0 ENDas 男,
                            
SUM(CASE SEX WHEN 2 THEN 1 ELSE 0 ENDas 女,
                      
SUM(CASE SIGN(zhi-800WHEN -1 THEN 1 ELSE 0 ENDas 
                  小于800元,
                      
SUM((CASE SIGN(zhi-800)*SIGN(zhi-1000)                    
                  
/*用*来实现<和>功能*/
                           
WHEN -1 THEN 1 ELSE 0 END)+(CASE zhi
                           
WHEN 800  THEN 1 ELSE 0 END)) as 从800至999,         
                  
/*注意别名不能以数字开头*/
                      
SUM((CASE SIGN(zhi-1000)*SIGN(zhi-1200)
                           
WHEN -1 THEN 1 ELSE 0 END)+(CASE zhi
                           
WHEN 1000 THEN 1 ELSE 0 END)) as 从1000元至1199元,
                      
SUM((CASE SIGN(zhi-1200WHEN 1 THEN 1 ELSE 0 END)
                      
+(CASE zhi WHEN 1200 THEN 1 ELSE 0 END)) as 大于1200元
                  
FroM ttt 
                  
GROUP BY jcxm

                  部门名 人数    男       女   小于800元 从800至999 从1000元至1199元   大于1200元
                  部门a        
3        2        1        2        1           0   
                                             
0
                  部门b        
3        1        2        0        1           0   
                                             
2
                  部门c        
1        1        0        0        0           0   
                                            
1
                  部门d        
3        1        2        0        0           1   
                                            
2
                  部门e        
1        1        0        0        0             0 
                                              
1
                  部门f        
1        1        0        1        0           0   
                                            
0

 
【信息科学与工程学】【通信工程】第二百零三篇 112G/224G/448G SerDes技术 中的数学物理02 (对HgTe/CdTe量子阱):H(k)=ϵ(k)I+(M(k)Ak−​​Ak+​−M(k)​)⊗s0​+bulk inversion asymmetry terms,其中k±​=kx​±iky​,M(k)=M−Bk2,s0​为自旋单位矩阵。当Leff​=t时,τB​≈t/vg​≈0.1ps, 估算κL​(t)≈κL,bulk​⋅(τU​+τB​τB​​), 若τU​≈10ps, 则κL​≈10W/(m⋅K)。:Ti(ΦM​=4.3eV) 与单层MoS2​(χS​=4.0eV, Eg​=1.8eV)接触。 阅读详情

相关推荐

【信息科学与工程学】信息工程领域——第三十六篇 电路电子06 电路设计01

问题的数学分析及组合数学分析(涵盖材料科学、材料力学、数学物理、电路/电气/电机/电子/控制科学/控制论、微电子/电路系统架构、半导体器件物理、几何学/拓扑学/代数学/数论/离散数学/泛函分析/复变函数和时变函数/数理逻辑/运筹学、数学物理、数学华为、计算机系统架构设计、通信科学、信息科学、光科学、电科学、热科学、力学科学、网络科学 、复杂系统、其他学科知识)③LED驱动、PD接收、跨阻放大、带通滤波、ADC、数字处理;③三电极体系(工作、对、参比)、恒电位电路、电流-电压转换、低通滤波;

weixin_49199313的博客 269

SQL行列转换实战

行列转换实例                  ttt有三个字段                  seq  --序列                  jcxm --检查项目                  zhi  --值                  数据分别如下:                  seq   jcxm       zhi                  ----...

weixin_34384557的博客 139

【信息科学与工程学】【物理/化学和工程技术】第一百三十八篇 电子学02

【市/区县】

weixin_49199313的博客 373

MySQL数据库考测试试题(答案)(转载)

Mysql 测试题 (总分150分,时间2个小时) 一、单项选择题( 1分1个,共100分) 1.以下聚合函数求数据总和的是( ) A.MAX B.SUM C.COUNT D.AVG 答案:B 2.可以用( )来声明游标 A.CREATE CURSOR B.ALTER CURSOR C.SET CURSOR D.DECLARE CURSOR 答案:D 3.SELECT语句的完整语法较复杂,但至少包括的部分是( ) A.仅SELECT B.SELECT,FROM C.SELECT

Solomwn的博客 7770

MySQL数据库考测试试题(答案)

Mysql 测试题 (总分150分,时间2个小时) 一、单项选择题(1分1个,共100分) 1.以下聚合函数求数据总和的是( ) A.MAX B.SUM C.COUNT D.AVG 答案:B 2.可以用( )来声明游标 A.CREATE CURSOR B.ALTER CURSOR C.SET CURSOR D.DECLARE CURSOR ...

yipianfeng_ye的专栏 10万+

MYSQL创建数据库SALE_设计题 有一个MySQL数据库store,在store数据库中含有一个销售sale,用于存放商品的销售记录。...

sale的结构如下:字段名类型附加属性字段含义idintauto_increment序号pmvarchar(30)商品名称pricedecimal(9,2)单价numint数量sumdecimal(11,2)金额写出下列各题的SQL实现命令。1.打...sale的结构如下:字段名 类型 附加属性 字段含义id int ...

weixin_34239718的博客 2688

MySql测试题

一、单项选择题 1 .以下聚合函数求数据总和的是 ( ) A . MAX B . SUM C . COUNT D . AVG 答案: B 2 .可以用 ( ) 来声明游标 A . CREATE CURSOR B . ALTER CURSOR C . SET CURSOR D . DECLARE CURSOR 答案: D 3 . SELECT 语句的完整语法...

lalasonghhh的博客 1万+

ML-For-Beginners 第 6 章实战解读:从经典机器人到欧洲酒店评论的自然语言处理全流程

自然语言处理(NLP)是机器学习在生产软件中应用最广泛、也最贴近日常生活的方向之一。本篇文章以开源课程 [ML-For-Beginners](https://link.gitcode.com/i/044611bbd67a778265453a25031c99a5) 第 6 章「处理自然语言入门」(对应多语言译文 [translations/bg/6-NLP/README.md](https://li

gitblog_00224的博客 1081

ML-For-Beginners 自然语言处理(NLP)实战指南:从对话机器人到酒店评论情感分析

本文是开源机器学习课程 ML-For-Beginners(12 周、26 课、52 个测验)第 6 部分"自然语言处理(NLP)"的完整技术解读。该章节以"欧洲语言与文学、欧洲浪漫酒店"为主题,通过五节课带你从零构建能与简·奥斯汀《傲慢与偏见》角色对话的聊天机器人,再进阶到基于欧洲 51.5 万条酒店评论的情感分析实战。读完本文,你将掌握 NLP 的核心任务(分词、词嵌入、词性标注、N-gram、

gitblog_00833的博客 458

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

【信息科学与工程学】【数据中心】第三十二篇 云数据中心的计算/存储/网络的核心挑战01

状态方程: SOCk+1​=SOCk​−Qn​ik​Δt​;: 三相电流变换到αβ坐标系: iα​=32​​(ia​−21​ib​−21​ic​), iβ​=32​​(23​​ib​−23​​ic​). 计算瞬时有功功率p和无功功率q,经低通滤波器分离直流分量,反变换得基波电流,差值即为谐波指令。: 节点i的信念 bi​(xi​)=ϕi​(xi​)∏j∈N(i)​mji​(xi​), 消息 mij​(xj​)=∑xi​​ϕi​(xi​)ψij​(xi​,xj​)∏k∈N(i)\j​mki​(xi​).

weixin_49199313的博客 144

【信息科学与工程学】计算机科学与自动化——第一百八十九篇 计算机硬件 系列一 微处理器01

在金融业CDN流推送场景中,结合WebRTC over SD-RTN与SD-WAN Branch方案,需兼顾​​要求。

weixin_49199313的博客 1017

【信息科学与工程学】【物理/化学和工程技术】第一百二十七篇 汽车中的动力学01

m=2000 kg,θ=20°(约36%坡度),v=5 m/s,μ_r=0.015,C_D=0.35,A=2.5 m²,T_max=350 N·m,i_total=12,η=0.85,r=0.35 m,μ=0.8,F_z_drive=12000 N(后驱)。:阻尼力F_MR = F_viscous + F_yield,F_viscous = c_vis v_piston,F_yield = (A_piston - A_rod) τ_y(L_channel/h_gap) sign(v_piston)。

weixin_49199313的博客 47

1069. 产品销售分析 II#两种方法

聚合函数的使用:掌握如何使用SUM()等聚合函数来计算总量。GROUP BY 子句:理解GROUP BY的作用及其在数据分组和聚合中的应用。窗口函数:熟悉窗口函数的语法及其与传统聚合的区别。查询优化:了解不同聚合方法在性能上的差异,能够根据数据量和需求选择最优方案。DISTINCT 关键字:理解DISTINCT在去重和优化查询结果中的作用。

AGI爱好者_数仓&可视化&数据分析工程师_Vae’伯乐‘ 605

mysql聚合函数求数据总和的语句_以下聚合函数求数据总和的是( )_学小易找答案...

【单选题】下列关于进程说法错误的是( )。【单选题】既可以绘直线,又可以绘曲线的命令是( )。【多选题】以下中断事件中属于强迫中断的是( )。【单选题】SELECT 语句的完整语法较复杂,但至少包括的部分是( )【单选题】进程调度主要负责( )。【多选题】连接查询包括:【单选题】缩放(ZOOM)和平移(PAN)图形,视图发生了改变。以下说法正确的是(...

weixin_30577815的博客 3123

习题(三)

1.一个事务中的所有操作要么全部完成,要么全部不完成,这明事务具有( A )。    A、   原子性     B、   一致性     C、   隔离性     D、   持久性 2.多个事务之间的操作应当是互不影响,互不相干的,这明事务具有(  C )。     A、   原子性     B、   一致性     C、   隔离性     D、   持久性

揽月 2734

使用DECODE语句将记录变换字段 形成交叉

  现有一个商品销售sale,结构为:   month    char(6)      --月份   sell    number(10,2)   --月销售金额   现有数据为:   200001  1000   200002  1100   200003  1200     想要转化为以下结构的数据:   month1  number(10,2)   --1月销售金额 ...

weixin_34248118的博客 130

oracle数据库面试题目汇总

1. 对字符串操作的函数? 答:ASCII()          --函数返回字符达式最左端字符的ASCII 码值 CHR()    --函数用于将ASCII 码转换为字符      --如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值 --应该是必须给chr()赋数字值 concat(str,str)连接两个字符串 LOWER()    --函数

caisemozhi的专栏 2914
上一篇: 我想你的方式
下一篇: opencms建立子站点问题
bfox
博客等级 码龄25年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值