1

私はSybase、人々がここで使用する多くのクールな機能をサポートしていないものを使用しています。だから、私を助けている間、それを覚えておいてください。

私は次のようなデータベースを持っています:

RowTime         数量を入力します                     
cat1 1 10:01:01.000 50          
cat1 2 10:01.01.0010          
cat1 3 10:01:01.002 1000          
cat1 4 10:01.01.003 100          
cat1 5 10:01:03.001 100          

cat2 、cat3、cat4などもあります。

に配置された時間に基づいて、各カテゴリから最後の行を抽出して見つけたいと思いますascending order。したがって、上記の表について、を抽出しrow 5ます。

4

4 に答える 4

4

sybaseのドキュメントを見ると、ランク関数があるようです。だからここにそれを突き刺します:

declare @table table ( tp varchar(30), rowtime datetime, quantity int) 

insert @table select 'cat1 1', '20120101', 50
insert @table select 'cat2 1', '20130101', 50
insert @table select 'cat3 1', '20110101', 50
insert @table select 'cat4 1', '20100101', 50
insert @table select 'cat5 1', '20090101', 50
select * from (
   select *, RANK() OVER (ORDER BY  RowTime DESC) AS Rank from @table 
) a
where [RANK]=1

ここからランク関数を取得しました:http: //infocenter.sybase.com/help/index.jsp?topic = / com.sybase.infocenter.dc00169.1270 / html / iqperf / CEGDJFCE.htm

于 2013-01-11T21:15:33.173 に答える
2

これは1つの方法です。

SELECT A.*
FROM YourTable A
INNER JOIN (SELECT Type, MAX(Time) MaxTime
            FROM YourTable
            GROUP BY Type) B
    ON A.Type = B.Type AND A.Time = B.MaxTime
于 2013-01-11T21:02:32.643 に答える
1

SELECT * FROM table_name GROUP BY Type HAVING RowTime = max(RowTime)

于 2013-01-14T12:05:09.490 に答える
0

あなたにいくつかのアイデアを与えるかもしれないOracleクエリのカップル。これらの分析関数がSybaseで使用できるかどうかはわかりません。基本的に、クエリをカテゴリ別に分割してから、そのカテゴリの最後の行を取得する必要があります。この場合は、おそらくMAX(row_time)です。これには、ROW_NUMBER()、RANK()、DENSE_RANK()..などの多くの分析関数を使用できます。

-- Selects sal within dept with Rank = 2 --
SELECT ename, sal, sal_rank
  FROM ( SELECT ename, sal, DENSE_RANK() OVER (PARTITION BY deptno ORDER BY sal ASC) sal_rank FROM scott.emp ) 
WHERE sal_rank <= 2
/

-- MIN/MAX sal in each dept --
SELECT empno, deptno, sal,
   MIN(sal) KEEP (DENSE_RANK FIRST ORDER BY sal) OVER (PARTITION BY deptno) "Lowest",
   MAX(sal) KEEP (DENSE_RANK LAST ORDER BY sal) OVER (PARTITION BY deptno) "Highest"
 FROM scott.emp
ORDER BY deptno, sal
/
于 2013-01-11T21:44:29.630 に答える