在下面写一个查询,以检索出发港口
出发日期,航行量(行)作为第n列,最小值
航行中每组的最大吨位(min_t / max_t)
表。按出发港口和出发日期分组。筛选出行
其中出发港口为NULL或等于Batavia。过滤组
至少要有两次航行。
我很接近,但是in each group (min_t / max_t)
我不明白他们的意思。
我在那里需要做什么?这是我应该得到的桌子...
# departure_harbour departure_date n min_t max_t
1 Batavia 1768 2 136 1150
这就是我通过查询得到的...。
# departure_harbour departure_date MIN(tonnage) MAX(tonnage) n
1 NULL 1793 488 890 3
我有这个:
SELECT departure_harbour,
departure_date,
MIN(tonnage),
MAX(tonnage),
COUNT() AS n
FROM voyages
GROUP BY departure_harbour,
departure_date
HAVING departure_harbour IS NULL
OR departure_harbour = "Batavia"
当我在
AS
之后声明min_t和max_t时,它只是给我错误。我不知道该怎么做。除此之外:如何更改表格中显示的列顺序? 最佳答案
这是我阅读作业时想到的。
由于我们需要排除所有零值和Batavia,因此我使用了合并将零值离港港口转换为Batavia。
SELECT departure_harbour
, departure_date
, count(1) n
, min (tonnage) min_t
, max(tonnage) max_t
FROM voyages
WHERE coalesce(departure_harbour,'Batavia') <> 'Batavia'
GROUP BY departure_harbour
, departure_date
HAVING count(1)>1
关于mysql - 如何重命名此SQL代码段中的多个列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43527418/