亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在同一查詢中為所有人選擇并獲取 COUNT?

如何在同一查詢中為所有人選擇并獲取 COUNT?

Qyouu 2021-11-09 15:17:04
我有一個像這樣組裝的查詢(使用 Django 后端):sql = 'SELECT * FROM `table` WHERE'if condition1:    sql += ' `col1` = "foo" OR'if condition2:    sql += ' `col2` = "bar" OR'...if conditionN:    sql += ' `colN` = "foobar" OR'sql = sql[:-2] //to remove the extra 'OR'sql += 'ORDER BY `col1` LIMIT x OFFSET y'print(sql) //'SELECT * FROM `table` WHERE `col1` = "foo" OR `col2` = "bar" ... OR `colN` == "foobar" ORDER BY `col1` LIMIT x OFFSET y'我需要一個查詢來獲取一個COUNT(*)對所有的行table,但仍SELECT從與條件和數據庫LIMIT從上面我嘗試做這樣的事情:SELECT t1.*, IFNULL(COUNT(t2.*), 0) AS childCount FROM `table` AS t1 LEFT JOIN `table` AS t2WHERE `col1` = "foo" OR `col2` = 'bar' OR `colN` = 'foobar' ORDER BY `col1` desc LIMIT 10;如果您還不知道,我對上面查詢中發生的事情感到非常困惑,并且它不起作用(顯然)。更新該表如下所示:+--------+----------+|  col1  |   col2   | +--------+----------+|   a    |   foo    |      |   b    |   foo    |      |   c    |   bar    |      |   d    |   bar    |     |   e    |   foo    | +--------+----------+我需要的示例查詢:'SELECT *, COUNT(*) as childCount FROM `table` WHERE `col2` = "foo" LIMIT 1 OFFSET 0'它需要返回這個:("a", "foo") //because of the 'LIMIT 1 OFFSET 0' childCount = 3 //because there is 3 columns 'WHERE `col2` = "foo"'建議/解釋真的很感激:)
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

根據您更新的問題


你可以


select col1,col2,count from (

select col2,count(col2) as count from table1 group by col2 order by col1)a

order by col1

limit 1

offset 0


查看完整回答
反對 回復 2021-11-09
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

國際大學聯盟


SELECT a.col1, a.col2, b.childCount

FROM table a

JOIN (

  SELECT c.col2, COUNT(1)

  FROM table c

  GROUP BY 1

  ORDER BY 2 DESC) b

ON a.col2 = b.col2

LIMIT 1

OFFSET 0


查看完整回答
反對 回復 2021-11-09
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號