sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008:複数の日付範囲のキー数を数える

    SELECT COUNT(*),  Year(pm.order_dts) as Year
    FROM dm.medications pm
    WHERE Year(pm.order_dts) between 1996 AND 2008
    group by Year(pm.order_dts)
      

    すべてを 1 行にまとめたい場合は、次のようにします。

    SELECT 
        sum(case when Year(pm.order_dts) = 1996 then 1 end) as Count1996,
        sum(case when Year(pm.order_dts) = 1997 then 1 end) as Count1997,
        sum(case when Year(pm.order_dts) = 1998 then 1 end) as Count1998,
        sum(case when Year(pm.order_dts) = 1999 then 1 end) as Count1999,
        sum(case when Year(pm.order_dts) = 2000 then 1 end) as Count2000,
        sum(case when Year(pm.order_dts) = 2001 then 1 end) as Count2001,
        sum(case when Year(pm.order_dts) = 2002 then 1 end) as Count2002,
        sum(case when Year(pm.order_dts) = 2003 then 1 end) as Count2003,
        sum(case when Year(pm.order_dts) = 2004 then 1 end) as Count2004,
        sum(case when Year(pm.order_dts) = 2005 then 1 end) as Count2005,
        sum(case when Year(pm.order_dts) = 2006 then 1 end) as Count2006,
        sum(case when Year(pm.order_dts) = 2007 then 1 end) as Count2007,
        sum(case when Year(pm.order_dts) = 2008 then 1 end) as Count2008
    FROM dm.medications pm
      

    1. T-SQL:ID列を持つCTE

    2. Oracle Database 21c

    3. POSTGRESは、指定された値が配列型の列に存在するかどうかを確認します

    4. MySQLストアドプロシージャで一時テーブルを作成する