如何从SQL获取以下库存信息?

| 假设我有以下表格列 日期 时间 安全 交易价格 对于每个日期,我希望获得该特定日期交易的每种证券的首个和最后一个交易价格。如何在SQL中执行此操作?     
已邀请:
Postgresql的窗口函数提供了几种获取所需内容的方法。我还没有足够的使用它们来知道哪些(如果有的话)最细微的变体是最佳优化的,但是一个版本是
SELECT dt, sec, t0, p0, t1, p1 FROM
(
SELECT dt, sec,  first_value(tm) over date_window as t0,
  first_value(price) OVER date_window AS p0,
  last_value(tm) OVER date_window AS t1,
  last_value(price) OVER date_window AS p1,
  rank() OVER date_window AS r
 FROM a
 WINDOW date_window AS (PARTITION BY dt, sec ORDER BY tm
  RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
) AS subquery
WHERE r=1;
我更改了字段名称以避免保留字。     
尝试
   Select Coalesce(f.Security, l.Security) security.
      Coalesce(f.Date, l.Date) Date,
      f.TradePrice firstPrice,
      l.TradePrice lastPrice
   From table f Full Join table l
      On f.Security = l.Security
         And f.Date = l.Date
         And f.time = (Select Min(Time)
                       From table
                       Where Security = f.security 
                          And Date = f.Date)
         And l.Time = (Select Max(Time)
                       From table
                       Where Security = l.security 
                          And Date = l.Date)
    

要回复问题请先登录注册