0

count caseを使用して、特定の列(runs.Finish)のレコードが1に等しい場合にそれらをカウントしようとしています。

下の3行目のようにカウントケースを追加すると、これを機能させることができないようです。

SELECT
  `jockeys`.`JockeyInitials`,
  `jockeys`.`JockeySurName` ,
  COUNT(  `runs`.`JockeysID` ), 
  COUNT( CASE WHEN `runs`.`Finish`=1 THEN 1 ELSE NULL END ) AS `runs`.`Finish` , 
  SUM(  `runs`.`StakeWon` ) 
FROM runs, jockeys
WHERE  `runs`.`JockeysID` =  `jockeys`.`JockeysID` 
  AND  `runs`.`JockeysID` >=1
  AND  `runs`.`JockeysID` <=100
GROUP BY  `runs`.`JockeysID`
4

1 に答える 1

0

クエリは次のようになります(caseステートメントの列のgroup by列とエイリアスを確認してください)

SELECT
  `jockeys`.`JockeyInitials`,
  `jockeys`.`JockeySurName` ,
  COUNT(  `runs`.`JockeysID` ), 
  COUNT( CASE WHEN `runs`.`Finish`=1 THEN 1 ELSE NULL END ) AS `Finish` , 
  SUM(  `runs`.`StakeWon` ) 
FROM runs, jockeys
WHERE  `runs`.`JockeysID` =  `jockeys`.`JockeysID` 
  AND  `runs`.`JockeysID` >=1
  AND  `runs`.`JockeysID` <=100
GROUP BY  `jockeys`.`JockeyInitials`,
  `jockeys`.`JockeySurName`
于 2012-09-26T20:16:16.983 に答える