对多列进行反透视和联合的 SQL 查询

问题描述

我正在努力实现以下结果...

输入,表A

-----+--------+--------+-----+-------+----------+----------+---------+
sub  |   c_f  |  type  | F_G | layer | dec_2020 | jan_2021 | feb_2021
-----+--------+--------+-----+-------+----------+----------+---------+
A600 |  Core  | Analog |  F  |  50   |  d_val_1 | j_val_1  | f_val_1
A600 |  Core  | Analog |  F  |  60   |  d_val_2 | j_val_2  | f_val_2
A600 |  future| Analog |  G  |  32   |  d_val_3 | j_val_3  | f_val_3
-----+--------+--------+-----+-------+----------+----------+---------+

我会得到这个输出

-----------+-----+--------+--------+-----+-------+----------+
month_year | sub |   c_f  |  type  | F_G | layer | values   
-----------+-----+--------+--------+-----+-------+----------+
dec_2020   |A600 |  Core  | Analog |  F  |  50   |  d_val_1 
dec_2020   |A600 |  Core  | Analog |  F  |  60   |  d_val_2 
dec_2020   |A600 |  future| Analog |  G  |  32   |  d_val_3 
jan_2021   |A600 |  Core  | Analog |  F  |  50   |  j_val_1  
jan_2021   |A600 |  Core  | Analog |  F  |  60   |  j_val_2    
jan_2021   |A600 |  future| Analog |  G  |  32   |  j_val_3   
feb_2021   |A600 |  Core  | Analog |  F  |  50   |  f_val_1  
feb_2021   |A600 |  Core  | Analog |  F  |  60   |  f_val_2
feb_2021   |A600 |  future| Analog |  G  |  32   |  f_val_3
-----+--------+--------+-----+-------+----------+----------+

我正在尝试使用交叉应用,我可以创建列“month_year”,但我不知道如何合并最后一列中的“值”。 感谢帮助!

解决方法

我认为这基本上是void NearestNeighbor_Iterative(Node * root,float vector[3]) { std::stack<Node *> s; Node * cur = root; bool e = false; unsigned short depth = 0; while (cur != NULL || s.empty() == false) { if(cur != NULL) e = true; while (cur != NULL) { d0 = cur->vector[0] - vector[0]; d1 = cur->vector[1] - vector[1]; d2 = cur->vector[2] - vector[2]; d = d0 * d0 + d1 * d1 + d2 * d2; if (d < shortest) { shortest = d; shortest_node = root; if (shortest == 0) break; } diff[depth] = cur->vector[depth % 3] - vector[depth % 3]; s.push(cur); cur = diff[depth] > 0 ? cur->l : cur->r; depth++; } if (e) depth--; else depth -= 2; cur = s.top(); s.pop(); if (diff[depth] * diff[depth] < shortest) { e = false; cur = diff[depth] > 0 ? cur->r : cur->l; depth++; } else { cur = nullptr; } } }

apply
,

使用 func getUsernameColor(username: String) -> String{ let colors = [ "#e21400","#91580f","#f8a700","#f78b00","#58dc00","#287b00","#a8f07a","#4ae8c4","#3b88eb","#3824aa","#a700ff","#d300e7" ] var hash: UInt32 = 7 for char in username { let hashAddition = char.unicodeScalars.first!.value.addingReportingOverflow((hash << 5)) hash = hashAddition.partialValue.subtractingReportingOverflow(hash).partialValue } let index = abs(Int(hash) % colors.count) print(index) return colors[index] }

.scss

Demo here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...