首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数据中获取第一个记录的发生日期。

从数据中获取第一个记录的发生日期。
EN

Stack Overflow用户
提问于 2014-07-09 10:12:50
回答 2查看 37关注 0票数 0

我有一个数据库,里面有关于雪深度的观测结果。结构如下:

代码语言:javascript
复制
+--------------+---------+------+-----+---------+----------------+
| Field        | Type    | Null | Key | Default | Extra          |
+--------------+---------+------+-----+---------+----------------+
| ID           | int(11) | NO   | PRI | NULL    | auto_increment |
| DATE_OBS     | date    | NO   |     | NULL    |                |
| SNOW_DEPTH   | int(4)  | NO   |     | NULL    |                |
+--------------+---------+------+-----+---------+----------------+

和一份数据样本:

代码语言:javascript
复制
    +------+------------+--------------+
    | ID   | DATE_OBS   |  SNOW_DEPTH  |
    +------+------------+--------------+
    |    1 | 2002-01-01 |           58 |
    |    2 | 2002-01-01 |           58 |
    |    3 | 2002-01-02 |           61 |
    |    4 | 2002-01-03 |           60 |
    |    5 | 2002-01-04 |           64 |
    ************************************
    | 4563 | 2014-06-28 |            0 |
    | 4564 | 2014-06-29 |            0 |
    | 4565 | 2014-06-30 |            0 |
    +------+------------+--------------+
    4565 rows in set (0.01 sec)

我想知道是否有可能从我的数据中得到一些关于第一个有雪记录的日子的信息,以及最后一个有雪覆盖记录的日子。我试过说清楚的话,但没有运气。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-09 10:17:13

代码语言:javascript
复制
SELECT ID, 'FIRST_SNOW' TYPE, MIN(DATE_OBS) ,  SNOW_DEPTH FROM MY_TABLE
UNION
SELECT ID, 'LAST_SNOW' TYPE, MAX(DATE_OBS) ,  SNOW_DEPTH FROM MY_TABLE

代码语言:javascript
复制
    SELECT ID, DATE_OBS, SNOW_DEPTH, 'FIRST_SNOW' TYPE FROM MY_TABLE ORDER BY DATE_OBS ASC LIMIT 1
UNION
    SELECT ID, DATE_OBS, SNOW_DEPTH, 'LAST_SNOW' TYPE FROM MY_TABLE ORDER BY DATE_OBS DESC LIMIT 1
票数 0
EN

Stack Overflow用户

发布于 2014-07-09 10:19:18

假设您想要第一次和最后一次约会的所有记录(或操纵它们以获得第一天和最后一天的平均值,或类似的记录):-

代码语言:javascript
复制
SELECT a.ID, a.DATE_OBS, a.SNOW_DEPTH 
(
    SELECT MIN(DATE_OBS) AS min_date
    FROM some_table
) sub0
INNER JOIN some_table a
ON a.DATE_OBS = sub0.min_date
UNION
SELECT a.ID, a.DATE_OBS, a.SNOW_DEPTH 
(
    SELECT MAX(DATE_OBS) AS max_date
    FROM some_table
) sub0
INNER JOIN some_table a
ON a.DATE_OBS = sub0.max_date

如果你只想要第一张或最后一张唱片,那么使用尤尔根·d的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24650900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档