由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 请高手指点,SQL transpose? /5包子答谢~~
相关主题
问一个SQL Server的问题求教个MS SQL的问题
SQL add some columns into a table from another table (转载请教几个面试题
better solution for cross table query in sql?PIVOT question
这个sql怎么写? transpose Columns and rows in sql请教:安装Oracle SQL Developer
Looking help on ORACLE SQL LoaderPIVOT TABLE
能用SQL语句import一个txt 或 xls 文件吗请教文科女如何转DA相关的
如何寫此 SQL 查詢?初学者请教SQL学习
问个SQL问题谁能讲解一下pivot和partition 的用法?
相关话题的讨论汇总
话题: for1话题: sql话题: forecast话题: for3话题: for2
进入Database版参与讨论
1 (共1页)
p*****n
发帖数: 387
1
input.txt --》output.txt
我的理解是
把input.txt 第一行数据for1-3 列transpose,然后与第二行数据join
output.txt 最后insert 一列time key
不知道对否?
用sql程序怎么实现?
我sql太弱,一直没有搞定程序。恳请高手指点code。
多谢!


input.txt
ID for1 for2 for3
10 20.1 20.2 20.3
20 20.4 20.5 20.6
output.txt
ID forecast Time Key
10 20.1 1
10 20.2 2
10 20.3 3
20 20.4 1
20 20.5 2
20 20.6 3
p*****n
发帖数: 387
2
up up!
恳请高手指点!



【在 p*****n 的大作中提到】
: input.txt --》output.txt
: 我的理解是
: 把input.txt 第一行数据for1-3 列transpose,然后与第二行数据join
: output.txt 最后insert 一列time key
: 不知道对否?
: 用sql程序怎么实现?
: 我sql太弱,一直没有搞定程序。恳请高手指点code。
: 多谢!
:
:

s********e
发帖数: 893
3
加的那个Time key是按照for1 ,for2,for3数值大小排序吗?
w****w
发帖数: 521
4
select ID,for1 as forecast, now() as timekey
from input
union
select ID,for2 as forecast, now() as timekey
from input
union
select ID,for3 as forecast, now() as timekey
from input
再order一下。
s********e
发帖数: 893
5
不是高手,下面这个在Oracle下是可以的。供参考。
select id, forecast, rank() over
(partition by id order by forecast) timekey
from
(
select id, for1 forecast
from input
union select id, for2
from input
union select id, for3
from input
);
s********e
发帖数: 893
6
如果你原始数据中允许同一个ID的for1,for2,for3有可能有相同的value,比如有两
个 10 20.1,你还想1,2,3排的话,就把rank换成row_number
B*****g
发帖数: 34098
7
有包子耶,酷毙的准大师为啥还没出现?



【在 p*****n 的大作中提到】
: input.txt --》output.txt
: 我的理解是
: 把input.txt 第一行数据for1-3 列transpose,然后与第二行数据join
: output.txt 最后insert 一列time key
: 不知道对否?
: 用sql程序怎么实现?
: 我sql太弱,一直没有搞定程序。恳请高手指点code。
: 多谢!
:
:

y****w
发帖数: 3747
8
输入输出都是文本,干嘛折腾db?给你个我手头的unpivot shell版
#!/usr/bin/ksh
#echo "only processing file with below format:"
#echo "root v1,v2,v3,v4...."
#echo "root v1 v2 v3 v4...."
#echo '----------------------------------'
infile=$1
[[ ! -f $infile ]] && echo "not a file!" && return -1
tmpf=$(mktemp)
cat $infile |sed '/^$/d' | while read rt val
do
echo "$val" | sed 's/ /\
/g' | sed 's/,/\
/g' > $tmpf
cat $tmpf | sort -n | xargs -i echo "$rt {}"
rm -f $tmpf
done



【在 p*****n 的大作中提到】
: input.txt --》output.txt
: 我的理解是
: 把input.txt 第一行数据for1-3 列transpose,然后与第二行数据join
: output.txt 最后insert 一列time key
: 不知道对否?
: 用sql程序怎么实现?
: 我sql太弱,一直没有搞定程序。恳请高手指点code。
: 多谢!
:
:

p*****n
发帖数: 387
9
多谢大牛们出谋划策~~
受益匪浅!
包子马上转账。
第一次弄包子,希望能顺利搞定~~
p*****n
发帖数: 387
10
多谢!
很受启发!
我的SQL实在太烂了。得多向你学习~~

【在 s********e 的大作中提到】
: 不是高手,下面这个在Oracle下是可以的。供参考。
: select id, forecast, rank() over
: (partition by id order by forecast) timekey
: from
: (
: select id, for1 forecast
: from input
: union select id, for2
: from input
: union select id, for3

相关主题
能用SQL语句import一个txt 或 xls 文件吗求教个MS SQL的问题
如何寫此 SQL 查詢?请教几个面试题
问个SQL问题PIVOT question
进入Database版参与讨论
p*****n
发帖数: 387
11
多谢!
shell版本更容易跨平台实现!3x!

【在 y****w 的大作中提到】
: 输入输出都是文本,干嘛折腾db?给你个我手头的unpivot shell版
: #!/usr/bin/ksh
: #echo "only processing file with below format:"
: #echo "root v1,v2,v3,v4...."
: #echo "root v1 v2 v3 v4...."
: #echo '----------------------------------'
: infile=$1
: [[ ! -f $infile ]] && echo "not a file!" && return -1
: tmpf=$(mktemp)
: cat $infile |sed '/^$/d' | while read rt val

s**********o
发帖数: 14359
12
不就是RANK一下然后PIVOT吗?
B*****g
发帖数: 34098
13
UNPIVOT

【在 s**********o 的大作中提到】
: 不就是RANK一下然后PIVOT吗?
c*****d
发帖数: 6045
14
555,miss了包子
c*****d
发帖数: 6045
15
赞,以前我都没想到这个用法 xargs -i echo "$rt {}"

【在 y****w 的大作中提到】
: 输入输出都是文本,干嘛折腾db?给你个我手头的unpivot shell版
: #!/usr/bin/ksh
: #echo "only processing file with below format:"
: #echo "root v1,v2,v3,v4...."
: #echo "root v1 v2 v3 v4...."
: #echo '----------------------------------'
: infile=$1
: [[ ! -f $infile ]] && echo "not a file!" && return -1
: tmpf=$(mktemp)
: cat $infile |sed '/^$/d' | while read rt val

1 (共1页)
进入Database版参与讨论
相关主题
谁能讲解一下pivot和partition 的用法?Looking help on ORACLE SQL Loader
数据库问题求解能用SQL语句import一个txt 或 xls 文件吗
请教一个query 优化的问题(filter keyword)如何寫此 SQL 查詢?
请教一个sql问题问个SQL问题
问一个SQL Server的问题求教个MS SQL的问题
SQL add some columns into a table from another table (转载请教几个面试题
better solution for cross table query in sql?PIVOT question
这个sql怎么写? transpose Columns and rows in sql请教:安装Oracle SQL Developer
相关话题的讨论汇总
话题: for1话题: sql话题: forecast话题: for3话题: for2