2016-05-02 9 views
0

私はSQLiteを学習していますが、現在、クエリの出力にシーケンシャルな番号付けを追加する簡単な方法があるかどうかという疑問があります。下に、私は達成しようとしているものの例を示します。例えばSQLite:クエリ出力の行番号

、私は次のクエリを持って次のようにこのクエリの出力がある

SELECT 
    splTicker AS 'Ticker', 
    count(splTicker) AS '# of Splits' 
FROM Splits 
GROUP BY splTicker 
ORDER BY count(splTicker) DESC, splTicker ASC; 

bash-3.2$ sqlite3 myShares < Queries/Split.sql 
Ticker  # of Splits 
---------- ----------- 
AI.PA  7   
ASML.AS  3   
BN.PA  3   
ALTR.LS  2   
BOKA.AS  2   
DG.PA  2 
... 
SON.LS  1   
SU.PA  1   
SW.PA  1   
TEC.PA  1   
UMI.BR  1   
VIV.PA  1   
VPK.AS  1 

私が取得する行に連番を追加しようとしています次の出力:

# Ticker  # of Splits 
-- ---------- ----------- 
1 AI.PA  7   
2 ASML.AS  3   
3 BN.PA  3   
4 ALTR.LS  2   
5 BOKA.AS  2   
6 DG.PA  2 
... 

現在、私は回避策を使用して、 n Perl。私はSQLiteでこれを直接行うことができるかどうかの疑問を提起しています。アイデアはシンプルなようですが、まだ解決策が見つかりませんでした。どんな助けもありがとう。

敬具、

GAM

答えて

0

これを試してみてください:

SELECT 
    (SELECT COUNT(*) 
     FROM Splits AS s2 
     WHERE s2.splTicker <= s1.splTicker) AS '#', 
    splTicker AS 'Ticker', 
    count(splTicker) AS '# of Splits' 
FROM Splits s1 
GROUP BY s1.splTicker 
ORDER BY count(s1.splTicker) DESC, s1.splTicker ASC; 
+0

私は似たようなしようとしたが、クエリはそれsplTickerは、元のデータテーブルに占有している行番号を出力 - クエリの前に。クエリは53行を返しますが、元のテーブルには71エントリが含まれています。 –