Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
如何使用SQL乘法值_Sql_Oracle - Fatal编程技术网

如何使用SQL乘法值

如何使用SQL乘法值,sql,oracle,Sql,Oracle,好的,我正在做我的家庭作业,我很难弄清楚如何使用SQL进行乘法,以及如何正确排序 我应该“创建一个查询,列出球员(球员姓名)、当前工资和一个新的(创建的)列,该列反映工资增加10%(按工资*1.1计算)。按工资降序排列数据。” 这只是一个简单的NHL数据库,我们的老师为这个作业准备的。球员表上有74名球员。球员表中的字段包括:球员id、球员姓名、球员工资、球队id和职位id 以下是我到目前为止的情况: SELECT player_name, player_salary, SUM(player_s

好的,我正在做我的家庭作业,我很难弄清楚如何使用SQL进行乘法,以及如何正确排序

我应该“创建一个查询,列出球员(球员姓名)、当前工资和一个新的(创建的)列,该列反映工资增加10%(按工资*1.1计算)。按工资降序排列数据。”

这只是一个简单的NHL数据库,我们的老师为这个作业准备的。球员表上有74名球员。球员表中的字段包括:球员id、球员姓名、球员工资、球队id和职位id

以下是我到目前为止的情况:

SELECT player_name, player_salary, SUM(player_salary*1.1) AS NewSalary
FROM players
GROUP BY player_salary, player_name;
这样,它至少在运行。我相信我必须将GROUP BY更改为ORDER BY,并在最后使用DESC标记,但这不起作用。这是我通过运行此查询获得的输出:

PLAYER_NAME          PLAYER_SALARY          NEWSALARY              
-------------------- ---------------------- ---------------------- 
Johan Franzen        42000                  46200                  
Brad Stuart          18000                  19800                  
Tomas Holmstrom      38000                  41800                  
Dan Cleary           10000                  11000                  
Jonathan Toews       32000                  35200                  
David Krejci         28000                  30800                  
Mike Ribeiro         10000                  11000                  
Steve Sullivan       20005                  22005.5                
Ryan Getzlaf         28000                  30800                  
Chris Stewart        18000                  19800                  
Brad Richards        10000                  11000                  
Nathan Horton        20000                  22000                  
James Neal           38000                  41800                  
Nicklas Lidstrom     44000                  48400                  
Jiri Hudler          28000                  30800                  
TJ Oshie             44000                  48400                  
Blake Comeau         10000                  11000                  
Drew Stafford        26888                  29576.8                
Brenden Morrow       10000                  11000                  
Daniel Sedin         26000                  28600                  
PA Parenteau         43000                  47300                  
Henrik Zetterberg    32000                  35200                  
Valtteri Filppula    28000                  30800                  
Tomas Kopecky        26000                  28600                  
Andrei Kostitsyn     28000                  30800                  
Marian Hossa         44000                  48400                  
Henrik Sedin         10000                  11000                  
Don Smith            20520                  22572                  
Rick Nash            15750                  17325                  
Todd Bertuzzi        43000                  47300                  
Patrick Eaves        10000                  11000                  
Mike Modano          80000                  88000                  
Alex Goligoski       28000                  30800                  
Patrick Kane         44000                  48400                  
Bobby Ryan           26000                  28600                  
Dustin Brown         10000                  11000                  
Patrick Sharp        43000                  47300                  
John-Michael Liles   10000                  11000                  
Paul Stastny         14000                  15400                  
Matt Cullen          10000                  11000                  
Martin St Louis      32000                  35200                  
Alexander Semin      28000                  30800                  
Niklas Kronwall      10000                  11000                  
John Tavares         42000                  46200                  
Matt Moulson         38000                  41800                  
Tobias Enstrom       42000                  46200                  
Matt Duchene         18000                  19800                  
Steven Stamkos       32000                  35200                  
Sidney Crosby        42000                  46200                  
Teemu Selanne        10000                  11000                  
Daniel Alfredsson    10000                  11000                  
Evgeni Malkin        10000                  11000                  
Andrew Ladd          20000                  22000                  
Corey Perry          28000                  30800                  
Adam Keefe           315000                 346500                 
Brian Rafalski       20000                  22000                  
Darren Helm          10000                  11000                  
Brandon Dubinsky     28000                  30800                  
Mark Letestu         10000                  11000                  
Loui Eriksson        20000                  22000                  
Clarke MacArthur     42000                  46200                  
Kris Letang          30000                  33000                  
Pavel Datsyuk        26000                  28600                  
James Wisniewski     32000                  35200                  
Nicklas Lidstrom     43000                  47300                  
Milan Hejduk         18000                  19800                  
Tyler Ennis          43000                  47300                  
Paul Martin          38000                  41800                  
Derek Roy            28000                  30800                  
Mikko Koivu          10000                  11000                  
Joe Pavelski         20000                  22000                  
Joe Thornton         10000                  11000                  
Phil Kessel          26000                  28600                  
Alex Ovechkin        18000                  19800                  

74 rows selected

我可能忽略了一些相对简单的东西,但我在教科书中找不到任何类似的参考点。非常感谢您的帮助。

为什么要使用GROUP BY

SELECT player_name, player_salary, player_salary*1.1 AS NewSalary
FROM players
ORDER BY player_salary DESC

你为什么要分组?你是说点菜吗

SELECT player_name, player_salary, player_salary * 1.1 AS NewSalary
FROM players
ORDER BY player_salary, player_name;

您不需要使用GROUP BY,但使用它不会改变结果。只需在末尾添加一行ORDER BY line即可对结果进行排序

SELECT player_name, player_salary, SUM(player_salary*1.1) AS NewSalary
FROM players
GROUP BY player_salary, player_name;
ORDER BY SUM(player_salary*1.1) DESC
这是:

select player_name, player_salary, (player_salary * 1.1) as player_newsalary
from player 
order by player_name, player_salary, player_newsalary desc

如果表中只有一个球员实例,则不需要“分组依据”。

不按球员工资降序排列,而是在球员姓名上先排列Z-a。是的。其他Column参数适用于球员姓名或/和球员工资不唯一的情况。我使用SQL Server,有兴趣了解Oracle是否可以在没有分组依据的情况下处理查询,因为在SQL Server中,如果省略了查询,则查询将不会解析。@Tony此处不需要聚合函数。但无论如何,在MSSQL中,聚合没有组的函数不是意味着“将它们全部组合在一行中”吗?但是,由于未聚合字段(这是正确的),它可能无法解析。谢谢您的回复。您是对的聚合函数不是必需的,您提供的SQL实际上在SQL Server中工作,我弄错了。SUM不是必需的,对于每个播放器,您都在添加一个值。如果每个玩家都有多张唱片,那么你可以使用sum…我知道。我只是给出了上面的代码作为替代答案(我只添加了最后一行)。获取的结果相同。@MozenRath请注意。