相关疑难解决方法(0)

MySQL中GROUP_CONCAT的反义词是什么?

我似乎反对这个问题很多,我的数据格式如下:

+----+----------------------+
| id | colors               |
+----+----------------------+
| 1  | Red,Green,Blue       |
| 2  | Orangered,Periwinkle |
+----+----------------------+
Run Code Online (Sandbox Code Playgroud)

但我希望它的格式如下:

+----+------------+
| id | colors     |
+----+------------+
| 1  | Red        |
| 1  | Green      |
| 1  | Blue       |
| 2  | Orangered  |
| 2  | Periwinkle |
+----+------------+
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?什么是这种操作甚至叫做?

mysql csv format pivot group-concat

28
推荐指数
2
解决办法
2万
查看次数

在redshift中使用sql函数generate_series()

我想在redshift中使用generate系列函数,但还没有成功.

redshift文档说它不受支持.以下代码确实有效:

select *
from generate_series(1,10,1)
Run Code Online (Sandbox Code Playgroud)

输出:

1
2
3
...
10
Run Code Online (Sandbox Code Playgroud)

我想对约会做同样的事情.我尝试了很多变种,包括:

select *
from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)
Run Code Online (Sandbox Code Playgroud)

踢出去:

 ERROR: function generate_series(date, date, integer) does not exist
 Hint: No function matches the given name and argument types.
 You may need to add explicit type casts. [SQL State=42883]
Run Code Online (Sandbox Code Playgroud)

还尝试过:

select *
from generate_series('2008-10-01 00:00:00'::timestamp,
'2008-10-10 00:00:00'::timestamp,'1 day')
Run Code Online (Sandbox Code Playgroud)

并试过:

select *
from generate_series(cast('2008-10-01 00:00:00' as datetime),
cast('2008-10-10 00:00:00' as datetime),'1 day')
Run Code Online (Sandbox Code Playgroud)

两个都踢了出来:

ERROR: function generate_series(timestamp without time zone, timestamp without time zone, …
Run Code Online (Sandbox Code Playgroud)

sql generate-series amazon-redshift

18
推荐指数
3
解决办法
2万
查看次数

在RedShift中将值拆分为多行

如何将字段(例如CSV字符串)拆分为多行的问题已经得到解答:将 值拆分为多行.

但是,这个问题涉及MSSQL,并且答案使用了没有RedShift等价物的各种功能.

为了完整起见,这是我想做的一个例子:

目前的数据:

| Key | Data     |
+-----+----------+
| 1   | 18,20,22 |
| 2   | 17,19    |
Run Code Online (Sandbox Code Playgroud)

所需数据:

| Key | Data     |
+-----+----------+
| 1   | 18       |
| 1   | 20       |
| 1   | 22       |
| 2   | 17       |
| 2   | 19       |
Run Code Online (Sandbox Code Playgroud)

现在,我可以建议在CSV字段中使用小的,有限数量的元素的情况:在所有可能的数组位置上使用split_part和union,如下所示:

SELECT Key, split_part(Data, ',', 1) 
FROM mytable
WHERE split_part(Data, ',', 1) != ""
    UNION
SELECT Key, split_part(Data, ',', 2) 
FROM mytable
WHERE split_part(Data, ',', 2) …
Run Code Online (Sandbox Code Playgroud)

sql split amazon-redshift

5
推荐指数
1
解决办法
5573
查看次数

在 Amazon Redshift 中将值数组拆分为行

如何使用分隔符 (,) 将列中的值数组拆分为 Redshift 中的相应行?

\n\n

输入数据:-

\n\n
\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94  \nEmpid | Items  \n\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94  \n1001| A, B  \n1002| B  \n1003| C, D, E  \n
Run Code Online (Sandbox Code Playgroud)\n\n

所需输出:-

\n\n
\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94  \nEmpid | Items  \n\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94  \n1001| A  \n1001| B  \n1002| B  \n1003| C  \n1003| D  \n1003| E  \n
Run Code Online (Sandbox Code Playgroud)\n\n

任何帮助表示赞赏。

\n\n

谢谢

\n

amazon-redshift

2
推荐指数
1
解决办法
1万
查看次数

Redshift将单个动态列拆分为新表中的多行

有一个像这样的表:

       uid               |            segmentids
-------------------------+----------------------------------------
 f9b6d54b-c646-4bbb-b0ec | 4454918|4455158|4455638|4455878|4455998
 asd7a0s9-c646-asd7-b0ec | 1265899|1265923|1265935|1266826|1266596
 gd3355ff-cjr8-assa-fke0 | 2237557|2237581|2237593
 laksnfo3-kgi5-fke0-b0ec | 4454918|4455158|4455638|4455878
Run Code Online (Sandbox Code Playgroud)

如何使用以下命令创建新表:

      uid               |         segmentids
-------------------------+---------------------------
 f9b6d54b-c646-4bbb-b0ec |           4454918
 f9b6d54b-c646-4bbb-b0ec |           1265899
 f9b6d54b-c646-4bbb-b0ec |           2237557
 f9b6d54b-c646-4bbb-b0ec |           4454918
 f9b6d54b-c646-4bbb-b0ec |           4454918
 asd7a0s9-c646-asd7-b0ec |           1265899
 asd7a0s9-c646-asd7-b0ec |           1265923
 asd7a0s9-c646-asd7-b0ec |           1265935 
 asd7a0s9-c646-asd7-b0ec |           1266826
 asd7a0s9-c646-asd7-b0ec |           1266596
Run Code Online (Sandbox Code Playgroud)

细分的数量是动态的,可以随每条记录而变化.我尝试使用带分隔符的Split函数,但它需要string中的索引,这里是动态的.

有什么建议?

sql amazon-redshift

0
推荐指数
1
解决办法
2172
查看次数