从Querry创建的表中获取最大的“ dauer”条目

问题描述 投票:0回答:1

我知道这是sql的常见问题,我已经找到了很多关于如何执行此操作的解释,但是当我要从中获取max条目(用于“ dauer”)的表时,我只是无法确定该怎么做查询已创建的表。我正在使用SQLServer数据库。我真的希望你们能给我一个提示。

    SELECT foo.vname, foo.nname, foo.sw_name,  SUM(foo.dauer) AS dauer from 
(SELECT benutzer.vname, benutzer.nname, verwendung.sw_name, verwendung.dauer
FROM benutzer 
INNER JOIN verwendung 
ON benutzer.login = verwendung.login AND benutzer.pw = verwendung.pw
GROUP BY benutzer.login, benutzer.pw, verwendung.sw_name, verwendung.dauer
ORDER BY benutzer.vname ASC, benutzer.nname ASC, verwendung.sw_name ASC)AS foo
GROUP BY foo.vname, foo.nname, foo.sw_name

编辑:澄清我想知道的我想获取表中在“ dauer”列中具有最大值的条目。例如:因为Ada应该是Ada-Lovelace-Presmaker-910

table from my querry

sql greatest-n-per-group
1个回答
0
投票

我正在尝试了解您的需求,如果我是对的,这会做到的:如你所说:

我想从一个已经存在的表中获取最大条目(“ dauer”)通过查询创建

select foo2.vname
       , foo2.nname
       , foo2.sw_name
       , foo2.dauer 
from (
      SELECT foo.vname
             , foo.nname
             , foo.sw_name
             ,  SUM(foo.dauer) AS dauer 
      from (SELECT benutzer.vname
                   , benutzer.nname
                   , verwendung.sw_name
                   , verwendung.dauer
            FROM benutzer 
            INNER JOIN verwendung 
            ON benutzer.login = verwendung.login 
               AND benutzer.pw = verwendung.pw
            GROUP BY benutzer.login
                     , benutzer.pw
                     , verwendung.sw_name
                     , verwendung.dauer
            ORDER BY benutzer.vname ASC
                     , benutzer.nname ASC
                     , verwendung.sw_name ASC)AS foo
      GROUP BY foo.vname
               , foo.nname
               , foo.sw_name) as foo2
where foo2.dauer = (select max(foo3.dauer) 
                    from (SELECT foo.vname
                                 , foo.nname
                                 , foo.sw_name
                                 ,  SUM(foo.dauer) AS dauer 
                          from (SELECT benutzer.vname
                                       , benutzer.nname
                                       , verwendung.sw_name
                                       , verwendung.dauer
                                FROM benutzer 
                                INNER JOIN verwendung 
                                ON benutzer.login = verwendung.login 
                                AND benutzer.pw = verwendung.pw
                                GROUP BY benutzer.login
                                         , benutzer.pw
                                         , verwendung.sw_name
                                         , verwendung.dauer
                                ORDER BY benutzer.vname ASC
                                         , benutzer.nname ASC
                                         , verwendung.sw_name ASC)AS foo
                          GROUP BY foo.vname
                                   , foo.nname
                                   , foo.sw_name) foo3
                    where foo3.vname = foo2.name 
                    and foo3.nname = foo2.nname 
                    and foo3.sw_name ) foo.sw_name)

并且取决于您的数据库是什么,查询可能会有所不同...

© www.soinside.com 2019 - 2024. All rights reserved.