Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL-如何在给定的数据集中找到最新的趋势_Sql Server_Tsql - Fatal编程技术网

Sql server SQL-如何在给定的数据集中找到最新的趋势

Sql server SQL-如何在给定的数据集中找到最新的趋势,sql-server,tsql,Sql Server,Tsql,大家好,我有一个名为DataTable的表,我必须提取每个区域类型的行数。我正在使用SQLServer2008R2 !这是表脚本和示例数据 价值观 (74495133,'Pashchim Champaran','2010-2011',73.2), (74496133,'Kishanganj','2010-2011',71.9), (74497133,'Katihar','2010-2011',75.9), (74498133,'Saharsa','2010-2011',76.9), (74499

大家好,我有一个名为DataTable的表,我必须提取每个区域类型的行数。我正在使用SQLServer2008R2 !这是表脚本和示例数据

价值观 (74495133,'Pashchim Champaran','2010-2011',73.2), (74496133,'Kishanganj','2010-2011',71.9), (74497133,'Katihar','2010-2011',75.9), (74498133,'Saharsa','2010-2011',76.9), (74499133,'Darbhanga','2010-2011',54.4), (74500133,'Muzaffarpur','2010-2011',82.2), (74501133,'Gopalganj','2010-2011',68.3), (74502133,'Siwan','2010-2011',73.4), (74503133,'Saran','2010-2011',56.4), (74504133,'Vaishali','2010-2011',81.4), (74505133,'Khagaria','2010-2011',84.8), (74506133,'Bhagalpur','2010-2011',62.4), (74507133,'Munger','2010-2011',87.1), (74508133,'Lakhisarai','2010-2011',67.2), (74509133,'Sheikhpura','2010-2011',78.5), (74510133,'Nalanda','2010-2011',62.6), (74511133,'Patna','2010-2011',88.5), (74512,133,'Bhojpur','2010-2011',88), (74513133,'Buxar','2010-2011',69.8), (74514133,'Rohtas','2010-2011',75.6), (7451515133,'Aurangabad','2010-2011',76.7), (74516133,'Gaya','2010-2011',67.1), (74517133,'Nawada','2010-2011',75.6), (74518133,'Jehanabad','2010-2011',83.7), (74528133,'Pashchim Champaran','2011-2012',74.1), (74529133,'基桑甘吉','2011-2012',82), (74530133,'Katihar','2011-2012',80), (74531133,'Saharsa','2011-2012',81.5), (74532133,'Darbhanga','2011-2012',59.9), (74533133,'Muzaffarpur','2011-2012',79.4), (74534133,'Gopalganj','2011-2012',78.7), (74535133,'Siwan','2011-2012',77), (74536133,'Saran','2011-2012',62.3), (74537133,'瓦伊沙利','2011-2012',86.7), (74538133,'Khagaria','2011-2012',85.9), (74539133,'Bhagalpur','2011-2012',76.9), (74540133,'Munger','2011-2012',81.4), (74541133,'Lakhisarai','2011-2012',75.8), (74542133,'Sheikhpura','2011-2012',84.7), (74543133,'Nalanda','2011-2012',68.7), (74544133,'Patna','2011-2012',88.4), (74545133,'Bhojpur','2011-2012',86.4), (74546133,'Buxar','2011-2012',73.4), (74547133,'Rohtas','2011-2012',77.2), (74548133,'Aurangabad','2011-2012',75.7), (74549133,'Gaya','2011-2012',66.3), (74550133,'Nawada','2011-2012',75.1), (74551133,'Jehanabad','2011-2012',80.7), (74561133,'Pashchim Champaran','2012-2013',79.1), (74562133,'基桑甘吉','2012-2013',81.9), (74563133,'Katihar','2012-2013',83.3), (74564133,'Saharsa','2012-2013',87), (74565133,'Darbhanga','2012-2013',64.4), (74566133,'Muzaffarpur','2012-2013',83.7), (74567133,'Gopalganj','2012-2013',83.4), (74568133,'Siwan','2012-2013',76.7), (74569133,'Saran','2012-2013',64.9), (74570133,'Vaishali','2012-2013',78.4), (74571,133,'Khagaria','2012-2013',87.6), (74572133,'Bhagalpur','2012-2013',78), (74573133,'Munger','2012-2013',84.8), (74574133,'Lakhisarai','2012-2013',83.5), (74575133,'Sheikhpura','2012-2013',82.4), (74576133,'Nalanda','2012-2013',76.2), (74577133,'Patna','2012-2013',89.7), (74578133,'Bhojpur','2012-2013',86.9), (74579133,'Buxar','2012-2013',76.3), (74580133,'Rohtas','2012-2013',81.5), (74581133,'Aurangabad','2012-2013',73.3), (74582133,'Gaya','2012-2013',70.5), (74583133,'Nawada','2012-2013',79.2), (74584133,'Jehanabad','2012-2013',78.4) ;

这就是我想要得到的:


注:-结果表中的数据_值通过选择任意时间段显示 但在列(P_Cange,Trend)中,始终计算最新的时段数据。 我尝试了这么多的概念,但没有一个适合我,我最新的想法是,如果我们可以添加一个额外的列来缩短时间周期,比如最高时间周期是1秒,最高时间周期是2秒等等。。。。。。 现在我用这个

谢谢你的帮助


我希望,您正在尝试从特定列的“最高值-第二高值”中获取值

SELECT (SELECT MAX([col]) FROM [dbo].[YourTable]) - MAX([col])
  FROM [dbo].[YourTable]
 WHERE [col] < (SELECT MAX([col]) FROM [dbo].[YourTable])
SELECT(从[dbo].[YourTable])中选择MAX([col])-MAX([col])
来自[dbo]。[YourTable]
其中[col]<(从[dbo].[YourTable]中选择MAX([col]))

希望,这对您有所帮助。

您的意思是,您需要最高值和第二高值之间的差异?是(最高时段的数据值)-(第二高时段的数据值),因为百分比变化是“第二高值”总是小于最高值,还是按降序排列在前两位,即使他们是平等的?你试过什么吗?有研究吗?知道您使用的是哪个版本的SQL Server吗?SQL Server 2008 R2,“第二高值”并不总是低于最高值。这与当时的值无关。我尝试过使用子查询,但它不起作用,使用MAX子查询只对单列有效。它不起作用,可能是我的问题不清楚。我现在已经按查询刷新了
Data_NId   IUSNId       Area_Name        TimePeriod   Data_Value   P_Cange   Trend  
 74495      133   Pashchim Champaran   2010-2011          73.2         5   P      
 74496      133   Kishanganj           2010-2011          71.9      -0.1   N      
 74497      133   Katihar              2010-2011          75.9       3.3   P      
 74498      133   Saharsa              2010-2011          76.9       5.5   P      
 74499      133   Darbhanga            2010-2011          54.4       4.5   P      
 74500      133   Muzaffarpur          2010-2011          82.2       4.3   P      
 74501      133   Gopalganj            2010-2011          68.3       4.7   P      
 74502      133   Siwan                2010-2011          73.4      -0.3   N      
 74503      133   Saran                2010-2011          56.4       2.6   P      
 74504      133   Vaishali             2010-2011          81.4      -8.3   N      
 74505      133   Khagaria             2010-2011          84.8       1.7   P      
 74506      133   Bhagalpur            2010-2011          62.4       1.1   P      
 74507      133   Munger               2010-2011          87.1       3.4   P      
 74508      133   Lakhisarai           2010-2011          67.2       7.7   P      
 74509      133   Sheikhpura           2010-2011          78.5      -2.3   N      
 74510      133   Nalanda              2010-2011          62.6       7.5   P      
 74511      133   Patna                2010-2011          88.5       1.3   P      
 74512      133   Bhojpur              2010-2011            88       0.5   P      
 74513      133   Buxar                2010-2011          69.8       2.9   P      
 74514      133   Rohtas               2010-2011          75.6       4.3   P      
 74515      133   Aurangabad           2010-2011          76.7      -2.4   N      
 74516      133   Gaya                 2010-2011          67.1       4.2   P      
 74517      133   Nawada               2010-2011          75.6       4.1   P      
 74518      133   Jehanabad            2010-2011          83.7      -2.3   N      
select *,ROW_NUMBER() OVER (PARTITION BY Area_Name ORDER BY Area_Name, TimePeriod DESC) AS RowNum from DataTable
SELECT (SELECT MAX([col]) FROM [dbo].[YourTable]) - MAX([col])
  FROM [dbo].[YourTable]
 WHERE [col] < (SELECT MAX([col]) FROM [dbo].[YourTable])