2017-10-17 6 views
0

hystrealalarmという2つのテーブルを持つSQL Server 2008 R2データベースがあります。SQL Server:テーブル内の上位5つの要素とそれらのすべてのオカレンスを見つけよう

alarmには、いくつかの状況ではアラームの数が増え、発生が増加しています。これらのアラームを時々登録するいくつかのスレッドがあるので、hystrealには、アラームとそのスレッドが登録するタイムスタンプが登録されます。

したがって、hystrealは次のようになります。

dataregvalue          timestamp    
-------------------------------------------------------------------------- 
ST8 err. cons.          1506352039    
ST8 err. cons.          1506352049    
ST8 err. cons.          1506352060    
ST8 err. cons.          1506352070    
ST8 err. cons.          1506352081    
ST8 err. cons.          1506352091    
ST8 err. cons.          1506352102    
ST8 err. cons.          1506352112    
ST8 err. cons.          1506352123    
ST8 err. cons.          1506352133    
ST8 err. cons.          1506352144    
ST8 err. cons.          1506352154    
ST8 err. cons.          1506352165    
ST7 timeout           1506352448    
ST7 timeout           1506352458    
ST7 timeout           1506352469    
ST7 timeout           1506352479    
ST7 timeout           1506352490    
ST7 timeout           1506352500    
ST7 timeout           1506352511    
ST7 timeout           1506352532    
ST7 timeout           1506352543    
ST7 timeout           1506352553    
ST7 timeout           1506352564    
ST7 timeout           1506352585    
ST7 timeout           1506352595    
ST7 timeout           1506353273    
ST7 timeout           1506353283    
ST7 timeout           1506353293    
mac. stop           1506353367    
mac. stop           1506353399    
mac. stop           1506353420    
mac. stop           1506353441    
ST3 timeout           1506353714    
ST3 timeout           1506353724    
ST3 timeout           1506353735    
ST3 timeout           1506353788    
ST13 timeout          1506353809    
ST13 timeout          1506353819    
ST23 err. Z42          1506353893    
ST23 err. Z42          1506353904    
ST23 err. Z42          1506353914    
ST23 err. Z42          1506353925    
ST23 err. Z42          1506353935    
ST23 err. Z42          1506353945    
ST23 err. Z42          1506353956    
ST23 err. Z42          1506353966    
ST23 err. Z42          1506353977    
ST23 err. Z42          1506353988    
ST23 err. Z42          1506353998    
ST23 err. Z42          1506354009    
ST23 err. Z42          1506354019    
ST23 err. Z42          1506354030    
ST23 err. Z42          1506354041    
ST7 timeout           1506354157    
ST7 timeout           1506354167    
ST7 timeout           1506354178    
ST7 timeout           1506354188    
ST7 timeout           1506354757    
ST7 timeout           1506354767    
ST7 timeout           1506354778    
ST7 timeout           1506354789   

ながら、alarmは次のようになります。

communication          occur 
------------------------------------------------------------ 
ST8 err. cons.          75    
ST7 timeout           15    
mac. stop           43    
ST3 timeout           7    
ST13 timeout          33    
ST23 err. Z42          1    

私は、値に基づいて上位5 communication(トップ5を見つけたいですoccur)をalarmsに、それぞれの相対タイムスタンプをhystrealに設定します。それはどうやってできますか?前もって感謝します!

N.B .:番号occurに関連するtimestampの番号はではありません。もっと多くのものがありますtimestamp

+1

。どの基準に基づいてトップ5?あなたのサンプルデータに基づいて、あなたは何を出力として期待していますか? –

+0

私はトップ5が発生に基づいているべきだと書いています。 –

+0

あなたは発生の価値に基づいて書きましたが、それはどういう意味ですか?最大値、最小値?それでも、あなたが何を期待しているか理解していない。 –

答えて

2

それは、このような単純なことができます:私はあなたが出力のために欲しいものを理解していないのです

Select * from hystreal 
where dataregvalue in 
(
Select top 5 communication 
from alarm 
order by occur 
) 
関連する問題