簡體   English   中英

帶有count(*)的子查詢

[英]Sub-query with count(*)

如何從子查詢count(*)數據中獲取與left(number,7)相關聯的失敗數據?

例如,我這樣做:

SELECT * FROM table1 WHERE outcome = 'Fail' AND left(number,7) = 
   (SELECT count(*) as total, left(number,7) as prefix  
   FROM table1 where outcome like '%Passed%' 
   group by prefix order by total desc limit 250)

這將無法工作,因為子查詢中有兩個字段..那么如何解決呢?

您可以使用JOIN代替子查詢:

SELECT t1.*, t2.total, ... 
FROM table1 AS t1
INNER JOIN
(
    SELECT count(*) as total, left(number,7) as prefix  
    FROM table1 
    where outcome like '%Passed%' AND outcome = 'Fail'
    group by prefix 
    order by total desc limit 250
) AS t2 ON t2.prefix = left(t1.number,7)

試試這個查詢

 SELECT * 
 FROM 
   table1 a 
 INNER JOIN 
   (SELECT 
      count(*) as total, 
      left(number,7) as prefix  
   FROM 
      table1 
   where 
      outcome like '%Passed%' 
   group by 
      prefix 
   order by 
      total desc limit 250)b
 ON 
   a.outcome = 'Fail' AND 
   left(number,7) = b.prefix

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM