Sql 选择“每用户行”以及当天的最新时间
我可以从数据库中获取所需的数据,但我只希望每个日期有一行,因此,例如,在下图中,应该只有第二行,而不是第一行。不知何故,我需要能够从一个日期为一个用户只获得一行Sql 选择“每用户行”以及当天的最新时间,sql,postgresql,greatest-n-per-group,Sql,Postgresql,Greatest N Per Group,我可以从数据库中获取所需的数据,但我只希望每个日期有一行,因此,例如,在下图中,应该只有第二行,而不是第一行。不知何故,我需要能够从一个日期为一个用户只获得一行 SELECT id_user, date_created || ' ' || time_created as placed FROM ( SELECT b_objednavky.uzivatel AS id_uziva
SELECT id_user, date_created || ' ' || time_created as placed
FROM (
SELECT
b_objednavky.uzivatel AS id_uzivatele,
b_objednavky.vytvoreno::date AS date_created,
to_char(b_objednavky.vytvoreno, 'HH24:MI:SS') as time_created,
b_objednavky.created
FROM b_objednavky
INNER JOIN u_uzivatele ON b_objednavky.uzivatel = (
SELECT u_uzivatele.id from u_uzivatele JOIN bw_paid_orders
ON u_uzivatele.id = bw_paid_orders.user_id
WHERE bw_paid_orders.active_thru < NOW() + interval '6 months'
) uzivatele
INNER JOIN bc_stavy_objednavky ON b_objednavky.stav = bc_stavy_objednavky.id
WHERE bc_stavy_objednavky.sysid = 'nova' AND b_objednavky.vytvoreno <= NOW()
AND bc_staty.kod NOT IN (
'BR', 'CL', 'AR', 'MX'
)
) AS order
LEFT OUTER JOIN (
SELECT user_id, max(paid) as last_paid FROM bw_paid_orders
GROUP BY user_id
) last_paid_by_user ON (id_user = user_id)
WHERE (created > last_paid OR last_paid IS NULL) AND created BETWEEN ('2017-02' || '-01')::date
AND ('2017-02' || '-01')::DATE + '1 month'::interval
ORDER BY datum_objednani DESC, objednavajici, nazev, duration
使用不同的
从一个日期为一个用户仅获取一行
要获取包含当天最新时间的行,请在同一查询级别添加:
ORDER BY id_user, date_created, time_created DESC NULLS LAST
详情:
使用不同的
从一个日期为一个用户仅获取一行
要获取包含当天最新时间的行,请在同一查询级别添加:
ORDER BY id_user, date_created, time_created DESC NULLS LAST
详情:
通过使用Row_Number OverPartition(行数超额部分)输入CTE,并从该CTE(行数=1)中选择;通过使用Row_Number OverPartition(行数超额部分)输入CTE,并从该CTE(行数=1)中选择,我应该在哪里使用它?在哪一条中?我有点迷路了that@jemcaj:在菜单中,在开始时选择右键,就像Erwin一样showed@jemcaj为什么考虑时间从一个日期只为一个用户获得一行?剩下的唯一问题是:如果有多行,则每个id\u用户、创建日期\u要获取哪一行。答案是。。。在链接的答案中。@jemcaj:我在上面添加了一个工作指令。解释是。。。在链接的答案中。如果您需要在结果中使用不同的顺序,请封装在子查询中,并在外部查询中使用不同的顺序。@jemcaj:啊,真是太好了!我们都去过那里。我能感觉到:我应该在哪里使用它?在哪一条中?我有点迷路了that@jemcaj:在菜单中,在开始时选择右键,就像Erwin一样showed@jemcaj为什么考虑时间从一个日期只为一个用户获得一行?剩下的唯一问题是:如果有多行,则每个id\u用户、创建日期\u要获取哪一行。答案是。。。在链接的答案中。@jemcaj:我在上面添加了一个工作指令。解释是。。。在链接的答案中。如果您需要在结果中使用不同的顺序,请封装在子查询中,并在外部查询中使用不同的顺序。@jemcaj:啊,真是太好了!我们都去过那里。我能感觉到: