首页 > 解决方案 > 如何使用计数功能

问题描述

我正在努力在 2020-2021 赛季组建梦幻篮球最佳篮球队。我为篮球运动员的统计数据创建了一个数据库,并导入了一个表格,其中包含即将到来的赛季的预测和选秀排名。我专注于打中锋位置的球员,我使用了 IFF 功能来查看他们是否在特定类别(列)中达到更高的统计数据。然后我想做的是计算每行中“是”的数量。我想创建另一列,添加每行中包含“YES”的值。想知道如何使这成为可能。

SELECT [Player]
     , [Position]
     , [Team]
     , IIF (  [MIN]  > 20.83 , 'YES' , 'NO' ) AS 'MIN'
     , IIF (  [GP]   > 70.7  , 'YES' , 'NO' ) AS 'GP' 
     , IIF (  [FG%]  > 0.51  , 'YES' , 'NO' ) AS 'FG%'
     , IIF (  [REB]  > 6.5   , 'YES' , 'NO' ) AS 'REB' 
     , IIF (  [BLK]  > 0.91  , 'YES' , 'NO' ) AS 'BLK' 
     , IIF (  [STL]  > 0.52  , 'YES' , 'NO' ) AS 'STL' 
     , IIF (  [TO]   < 1.34  , 'YES' , 'NO' ) AS 'TO'
     , 
FROM [ProFantasy].[Basketball]
WHERE [Position] LIKE '%C%'; 

在此处输入图像描述

标签: sqlsql-server

解决方案


也许您可以尝试将它们与 if 语句一起手动添加。

SELECT [Player]
     , [Position]
     , [Team]
     , IIF (  [MIN]  > 20.83 , 'YES' , 'NO' ) AS 'MIN'
     , IIF (  [GP]   > 70.7  , 'YES' , 'NO' ) AS 'GP' 
     , IIF (  [FG%]  > 0.51  , 'YES' , 'NO' ) AS 'FG%'
     , IIF (  [REB]  > 6.5   , 'YES' , 'NO' ) AS 'REB' 
     , IIF (  [BLK]  > 0.91  , 'YES' , 'NO' ) AS 'BLK' 
     , IIF (  [STL]  > 0.52  , 'YES' , 'NO' ) AS 'STL' 
     , IIF (  [TO]   < 1.34  , 'YES' , 'NO' ) AS 'TO'
     , IIF (  [MIN]  > 20.83 , 1 , 0 ) +
       IIF (  [GP]   > 70.7  , 1 , 0 ) +
       IIF (  [FG%]  > 0.51  , 1 , 0 ) +
       IIF (  [REB]  > 6.5   , 1 , 0 ) +
       IIF (  [BLK]  > 0.91  , 1 , 0 ) +
       IIF (  [STL]  > 0.52  , 1 , 0 ) +
       IIF (  [TO]   < 1.34  , 1 , 0 ) AS 'Yes Counts'
FROM [ProFantasy].[Basketball]
WHERE [Position] LIKE '%C%';  

推荐阅读