sql server 关于数据表横纵切换

目的如下:将图1转换为图2  ,就是将因子名称字段里面的值单独提出来作为新的数据表的字段,来提高查询速度

                                                                   图1

 

                                                                    图2

sql如下:

 

/****** Script for SelectTopNRows command from SSMS  ******/
SET ANSI_WARNINGS OFF;

insert into [lzz_db].[dbo].[t_stock_factor_transpose]
	(	[stock_date]
      ,[stock_code]
      ,[asset_mrq]
      ,[avg_total_market_capitalization_1y]
      ,[betahs300index]
      ,[free_turn]
      ,[m1changepctrm]
      ,[netprofit_ttm]
      ,[nonresisharesjy]
      ,[pe_ttm]
			,[volatility60]
			,[y1volatility]
			,[yoyroe]
      ,[update_time]
      ,[stamp]
	  )


SELECT  [stock_date]
	 ,[stock_code]  
    ,max([asset_mrq])  [asset_mrq]
		,max([avg_total_market_capitalization_1y])   [avg_total_market_capitalization_1y]
		,max([betahs300index])   [betahs300index]
		,max([free_turn])   [free_turn]
		,max([m1changepctrm])   [m1changepctrm]
		,max([netprofit_ttm])   [netprofit_ttm]
		,max([nonresisharesjy])   [nonresisharesjy]
		,max([pe_ttm])   [pe_ttm]
    ,max([volatility60])   [volatility60]
    ,max([y1volatility])   [y1volatility]
    ,max([yoyroe])   [yoyroe]
	  ,getdate()
		,getdate()
FROM
		(
		SELECT  [stock_code]
			,[stock_date]
			,[asset_mrq]
      ,[avg_total_market_capitalization_1y]
      ,[betahs300index]
      ,[free_turn]
      ,[m1changepctrm]
      ,[netprofit_ttm]
      ,[nonresisharesjy]
      ,[pe_ttm]
			,[volatility60]
			,[y1volatility]
			,[yoyroe]
       
		  FROM [lzz_db].[dbo].[t_stock_factor]  
		  PIVOT
		  (
			MAX([factor_value]) FOR [factor_name] in (
			 [asset_mrq]
      ,[avg_total_market_capitalization_1y]
      ,[betahs300index]
      ,[free_turn]
      ,[m1changepctrm]
      ,[netprofit_ttm]
      ,[nonresisharesjy]
      ,[pe_ttm]
			,[volatility60]
			,[y1volatility]
			,[yoyroe]
			) 
	 
		  )tbl

  )tb2
  group by  [stock_code]
      ,[stock_date]
	order by [stock_date],[stock_code]


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值