SQLite:查询输出的数字行

时间:2016-05-02 10:10:57

标签: 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
... 

目前,我使用了一种解决方法,并在Perl中添加了行查询后查询。我提出的问题是我是否可以直接在SQLite中执行此操作。这个想法似乎很简单,但我还没有找到解决方案。任何帮助将不胜感激。

致以最诚挚的问候,

GAM

1 个答案:

答案 0 :(得分: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;