`
blueskylan
  • 浏览: 98709 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

根据相同的key合并值(行转列)

    博客分类:
  • db2
 
阅读更多
--删除测试表
--drop table test;
--创建测试表
create table test (fcode varchar(10),fname varchar(20));
--插入测试数据
insert into test(fcode, fname) values('1001', 'A1'),('1001', 'B1'),('1001', 'C1'),('1002', 'A2'),('1002', 'B2'),('1003', 'A3');

with temp1(id1, id2, fcode, fname) as (
  --数据结果1
  select row_number() over(partition by fcode order by fcode) id1, row_number() over(partition by fcode order by fcode) id2, fcode, fname from test
),
temp2(id1, id2, fcode, fname) as (
  --数据结果2
  select id1, id2, fcode, cast(fname as varchar(100)) from temp1 where id1 = 1 and id2 = 1
  union all
  select temp2.id1+1, temp2.id2, temp2.fcode, cast(temp1.fname||','||temp2.fname as varchar(100)) from  temp1, temp2
  where temp1.id2 = temp2.id1+1 and temp2.fcode = temp1.fcode
)
--数据结果3
select * from (
  select fcode, fname from temp2 where temp2.id1= (select max(id1) from temp1 where temp1.fcode = temp2.fcode)
) as t order by fcode
  • 描述: 数据结果1
  • 大小: 1.5 KB
  • 描述: 数据结果2
  • 大小: 1.7 KB
  • 描述: 数据结果3
  • 大小: 1.1 KB
分享到:
评论

相关推荐

    oracle行转列聚合函数WMSYS.WM_CONCAT

    我们想要根据`key`字段将相同的`name`值合并成一个字符串,可以使用以下SQL语句: ```sql SELECT DISTINCT t.key, WMSYS.WM_CONCAT(t.name) OVER (PARTITION BY t.key ORDER BY t.name ASC) AS concatenated_names...

    datatable中移除重复行 ,并能合并重复行

    在实际应用中,你需要根据具体需求调整这些方法,例如改变去重或合并的依据列。同时,要注意处理大数据量时的性能优化,避免内存占用过高。在编程实践中,了解和掌握这些技巧对于提升数据处理效率至关重要。

    MySQL行转列与列转行.pdf

    ### MySQL行转列与列转行详解 #### 行转列 在数据库处理过程中,有时候我们需要将表中的数据从行的形式转换为列的形式,这样的操作称为“行转列”。这种需求通常出现在对数据进行汇总或者特定展示时。下面通过一个...

    WPF 为Grid自定义表格线,支持单元格行列合并

    例如,若要合并第一行和第二行的第一列,可以在对应的UI元素上设置RowSpan="2"。 ```xml <DataTemplate x:Key="MergeCellTemplate"> ``` 3. **应用模板**:最后,将定义好的DataTemplate应用...

    js代码-数组对象根据某个值相同合并分组

    当你需要根据数组中对象的某个特定属性值进行分组和合并时,可以采用多种方法来实现。这个场景在数据处理、表格展示、统计分析等用途中非常常见。在这个案例中,我们将讨论如何利用JavaScript将具有相同属性值的对象...

    vue 对象数组中,根据相同属性的数据合并,重组新的数组对象

    本问题探讨了如何根据`TYPE`和`REMARK`两个属性的值来决定是否合并对象,并生成新的数组对象。首先,我们需要理解源数据的结构,然后通过编程逻辑实现目标数据的转换。 源数据是一个包含多个对象的数组,每个对象有...

    vue合并单元格

    `getMergeInfo`方法需要根据具体需求实现,可能包括查找相同值的连续行,计算合并的行数和列数等。 ### 结语 通过以上步骤,我们可以在Vue项目中实现表格单元格的合并。这只是一个基本的示例,实际应用中可能需要...

    mysql 行转列和列转行实例详解

    行转列通常用于将具有多个相关值的同一列数据展示为多列。在 MySQL 中,可以使用 CASE 语句配合聚合函数(如 MAX, SUM 等)来实现。例如,我们有一个名为 `TEST_TB_GRADE` 的表,存储了学生姓名(USER_NAME)、科目...

    datagrid合并单元格

    - 列合并:适用于同一行中连续的列具有相同值的情况,比如报表的总计行。 - 跨行列合并:更复杂的合并方式,可能涉及到多行多列的合并,通常用于复杂的数据结构。 5. **API与配置** - `rowspan`和`colspan`属性...

    【JavaScript源代码】vue单元格多列合并的实现.docx

    对于每列,我们都需要设置一个唯一的key(如`channel_type`和`channel_name_chinese + channel_type`),以避免相同内容导致的错误合并。 在合并逻辑中,我们检查`this.myObj`和`this.myObj_two`这两个对象,它们...

    jQuery Datatables 动态列+跨列合并实现代码

    `<th>`标签的`colspan`属性用于跨列合并,当`$thead_arr`存在时,`colspan`值设为数组元素的个数,这样第一行的表头可以跨越所有列。 JavaScript部分是实现动态列的关键。在`initTable`函数中,首先获取`thead_key`...

    Oracle实现行转换成列的方法

    总的来说,Oracle提供了多种手段来应对行转列的需求,开发者可以根据实际的数据结构和需求选择最适合的方法。在设计数据库查询时,理解并熟练运用这些技术对于优化查询性能和提高数据处理效率至关重要。

    合并显示两个数据表的记录数据

    合并后的数据表可能会包含重复的列名,此时需要重命名或选择性地保留某些列。此外,如果合并后的数据量过大,可能需要进行切片、分组或聚合操作,以得到更易于理解和分析的结果。 ### 6. 示例 实例112中,很可能是...

    Python Merge函数原理及用法解析

    当我们对2个表进行数据合并的时候需要通过指定两个表中相同的列作为key,然后通过key匹配到其中要合并在一起的values值。 然后对于merge函数在Pandas中分为1vs1, 多(m)vs1,以及多(m)vs多(m)这三种场景。但是平时用...

    pandas dataframe的合并实现(append, merge, concat)

    `concat()` 方法可以沿着行(axis=0)或列(axis=1)方向合并多个DataFrame对象,它允许用户更灵活地控制合并过程。例如: - 沿着行合并: ```python pd.concat([df1, df2], axis=0) ``` - 沿着列合并: ```...

    [数据库] SQL查询语句表行列转换及一行数据转换成两列1

    在Oracle数据库中,可以使用`PIVOT`关键字将行转换为列,但不是所有数据库系统都支持。在不支持`PIVOT`的情况下,可以使用`GROUP BY`和`CASE WHEN`结合`UNION ALL`来实现类似效果。不过,这通常需要对原始数据结构有...

    pandas合并数据集.docx

    合并后的 DataFrame 包含了两个原始 DataFrame 中 `key` 列值相同的行。 #### 三、进阶用法 ##### 1. 指定不同的键名 如果要合并的两个 DataFrame 中的键名不同,可以通过分别指定 `left_on` 和 `right_on` 参数...

    python之DataFrame实现excel合并单元格

    2. 如果分组计数(CN)大于1,表示该组内的数据行需要合并,因为它们在key_cols中的值相同。如果CN等于1,意味着该组数据是唯一的,无需合并。 3. 对于需要合并的列,检查当前行是否属于需要合并的组(CN > 1)。...

Global site tag (gtag.js) - Google Analytics