【问题标题】:group by while getting the Ids of the columns that meet the conditiongroup by 同时获取满足条件的列的ID
【发布时间】:2013-09-07 13:37:01
【问题描述】:

我想写这样的东西

SELECT MIN(date),
       id 
   FROM test 
  WHERE t.SITE_ID=SITE_id 
  GROUP BY SITE_ID

但是在群聊后不可能得到ids。

然后我想出了这个

SELECT t.id 
  FROM test t 
 WHERE t.date IN(SELECT MIN(date) 
                   FROM test 
                  WHERE t.SITE_ID=SITE_id 
                  GROUP BY SITE_ID)

这个选择应该让我得到与每个站点的最短日期相同日期的测试行的ids 是否有让它更简单?

【问题讨论】:

    标签: mysql sql sql-server oracle oracle11g


    【解决方案1】:

    试试

    SELECT t1.id 
    FROM test t1
    inner join
    (
       select site_id, min(date) as mdate
       from test
       GROUP BY site_id
    ) t2 on t1.site_id = t2.site_id and t1.date = t2.mdate
    

    【讨论】:

      【解决方案2】:
      SELECT t1.id 
      FROM test t1
      inner join
      (
         select site_id, min(date) as mdate
         from test
         GROUP BY site_id, id
      ) t2 on t1.site_id = t2.site_id and t1.date = t2.mdate
      

      【讨论】:

        猜你喜欢
        • 2018-06-17
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多