如何列出使用第二古老列车的列车运营商(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
子句开始。