对应重复列的数据转成一行

Posted 熬肥妖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对应重复列的数据转成一行相关的知识,希望对你有一定的参考价值。

问题:C列相同的,GH两列的内容横向排成一行

 

Sub Test()
Dim MyRow As Long, MyCol As Long
For MyRow = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
    If Cells(MyRow, 3) = Cells(MyRow - 1, 3) Then
        MyCol = Cells(MyRow, Columns.Count).End(xlToLeft).Column - 6
        Cells(MyRow - 1, 9).Resize(1, MyCol) = Cells(MyRow, 7).Resize(1, MyCol).Value
        Cells(MyRow, 3).EntireRow.Delete
    End If
Next
End Sub

 

BigQuery 选择重复列的一行

【中文标题】BigQuery 选择重复列的一行【英文标题】:BigQuery selecting one row of a repeated column 【发布时间】:2018-07-16 22:32:54 【问题描述】:

假设我有一个包含这些列和值的表格:

 ------------- ----------
| customer_id | order_id |
|-------------|----------|
|      14     |    3     |
|      17     |    9     |
|      17     |   12     |
|      17     |   33     |
|      44     |    1     |
 ------------------------

即 2 列,其中一列可以获取重复值 (customer_id),另一列不获取重复值 (order_id)。

如何查询表以获得唯一的customer_id 值?当customer_id 被重复时,我想抓取具有最小order_id 的行。所以我假设为此需要一个ORDER BY 声明。

如果我使用GROUP BY 对列进行分组,我会得到如下查询:

#standardSQL
SELECT customer_id, order_id FROM table
GROUP BY customer_id, order_id;

仍然显示所有customer_id 行。 我厌倦了使用DISTINCT,但这会产生相同的值。

【问题讨论】:

【参考方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 14 customer_id, 3 order_id UNION ALL
  SELECT 17, 9 UNION ALL
  SELECT 17, 12 UNION ALL
  SELECT 17, 33 UNION ALL
  SELECT 44, 1 
)
SELECT customer_id, MIN(order_id) AS order_id
FROM `project.dataset.table`
GROUP BY customer_id
-- ORDER BY customer_id  

结果为

Row customer_id order_id     
1   14          3    
2   17          9    
3   44          1    

【讨论】:

以上是关于对应重复列的数据转成一行的主要内容,如果未能解决你的问题,请参考以下文章

pandas删除数据行中的重复数据行基于dataframe所有列删除重复行基于特定数据列或者列的作何删除重复行删除重复行并保留重复行中的最后一行pandas删除所有重复行(不进行数据保留)

求助,python如何在csv插入一列的问题

BigQuery 选择重复列的一行

怎样把DataTable中的一列数据转换成数组

excel两组数据中如何找出相同的数据并对应排列?

Oracle一列的多行数据拼成一行显示