Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何列出使用第二古老列车的列车运营商(PostgreSQL)_Postgresql - Fatal编程技术网

如何列出使用第二古老列车的列车运营商(PostgreSQL)

如何列出使用第二古老列车的列车运营商(PostgreSQL),postgresql,Postgresql,列车司机: | train_operator_id | name | ------------------------------ | 1 | Virgin | | 2 | First | 行程: | journey_id | train_operator | train_type | -------------------------------------------- | 1 | 2

列车司机:

| train_operator_id |  name  |  
------------------------------
| 1                 | Virgin |
| 2                 |  First |
行程:

| journey_id | train_operator | train_type |
--------------------------------------------
| 1          | 2              | 2          |
| 2          | 2              | 1          |
| 3          | 1              | 3          |
| 4          | 1              | 2          |
列车类型:

| train_type_id | date_made  |
------------------------------
| 1             | 1999-02-15 |
| 2             | 2001-03-11 |
| 3             | 2000-12-05 |
您将如何编写查询以查找所有使用第二旧列车类型的列车运营商

对于给定的模式,查询结果应为just Virgin,因为它是唯一使用第二旧列车类型的列车运营商

select distinct train_operator from journeys 
    inner join (Select * from train_types order by date_made LIMIT 1 OFFSET 1) sectrain 
    on sectrain.train_type_id = journeys.train_type
你进入了英国铁路网,是吗?我曾经为Funkwerk IT工作,后者反过来为英国国营铁路公司提供时间表规划软件…

试试这个:

select distinct train_operator from journeys 
    inner join (Select * from train_types order by date_made LIMIT 1 OFFSET 1) sectrain 
    on sectrain.train_type_id = journeys.train_type

你进入了英国铁路网,是吗?我曾经为Funkwerk IT工作,后者反过来为英国国营铁路公司提供时间表规划软件…

在pg中使用强大的窗口功能非常容易

SELECT DISTINCT train_operator_id, 
                name 
FROM   (SELECT t.train_operator_id, 
               t.name, 
               Rank() OVER (ORDER BY tt.date_made) AS rank 
        FROM   train_operators AS t 
               JOIN journeys AS j 
                 ON j.train_operator = t.train_operator_id 
               JOIN train_types AS tt 
                 ON tt.train_type_id = j.train_type) AS q 
WHERE  rank = 2; 

在pg中使用强大的窗口功能非常容易

SELECT DISTINCT train_operator_id, 
                name 
FROM   (SELECT t.train_operator_id, 
               t.name, 
               Rank() OVER (ORDER BY tt.date_made) AS rank 
        FROM   train_operators AS t 
               JOIN journeys AS j 
                 ON j.train_operator = t.train_operator_id 
               JOIN train_types AS tt 
                 ON tt.train_type_id = j.train_type) AS q 
WHERE  rank = 2; 

Nitpick:Name train\u type和train\u type\u id相同。Nitpick:Name train\u type和train\u type\u id相同。我正在进入它,至少我正在进入关于火车的数据库。这只是我决定学习PSQL的一个项目。你在Funkwerk(一家公司的好名字)中经常使用它吗?谢谢你的回答,他们似乎用不同的方式来做,这很有趣。出于进一步的兴趣,虽然这是一个模糊的问题,但当你提出问题时,你的思维过程是什么?我从From子句开始,看看如何获得我想要的信息。选择字段稍后会出现。。。表中的外键可能是一个很大的线索…我正在进入它,至少我正在进入关于火车的数据库。这只是我决定学习PSQL的一个项目。你在Funkwerk(一家公司的好名字)中经常使用它吗?谢谢你的回答,他们似乎用不同的方式来做,这很有趣。出于进一步的兴趣,虽然这是一个模糊的问题,但当你提出问题时,你的思维过程是什么?我从From子句开始,看看如何获得我想要的信息。选择字段稍后会出现。。。表中的外键可能是一个很大的线索…谢谢你的所有答案,它们似乎用不同的方式完成了任务,这很有趣。出于进一步的兴趣,虽然这是一个模糊的问题,但当你提出查询时,你的思维过程是什么?@halfrench-SQL允许无限的方法来做同样的事情。我必须承认,我的查询可能会比其他两列慢一点,但它允许轻松地选择第二、第四和第十一列最老的列车,并且如果两列列车的日期相同,它将起作用。至于思考的过程,恐怕我没有足够的经验来提供建议。谢谢你的回答,他们似乎用不同的方式完成了任务,这很有趣。出于进一步的兴趣,虽然这是一个模糊的问题,但当你提出查询时,你的思维过程是什么?@halfrench-SQL允许无限的方法来做同样的事情。我必须承认,我的查询可能会比其他两列慢一点,但它允许轻松地选择第二、第四和第十一列最老的列车,并且如果两列列车的日期相同,它将起作用。至于思考的过程,恐怕我没有足够的经验来提供建议。谢谢你的回答,他们似乎用不同的方式完成了任务,这很有趣。出于进一步的兴趣,虽然这是一个模糊的问题,但当你提出问题时,你的思维过程是什么?@Half我总是从
from
子句开始。感谢你的回答,他们似乎用不同的方式来做这件事,这很有趣。出于进一步的兴趣,尽管这是一个模糊的问题,但当你提出问题时,你的思维过程是什么?@Half我总是从
from
子句开始。