2013-05-02 47 views
1

我想查找表格中存在的最大數量id。例如,我有一個user_views表:如何在一個表中獲得最大的id號?

 user_views 
------------------- 
u_v_id package_id 
    1   24 
    2   24 
    3   24 
    4   25 
    5   25 
    6   26 
    7   27 

而一個包表:

package_id  name 

id S的存在於一個表中的最大數目是24等。

如何編寫查詢來提取該值?

+0

所需出來放會24 – user2046638 2013-05-02 13:31:34

+0

你真的需要澄清一點。 – SomeShinyObject 2013-05-02 13:47:17

+0

我想要在package_id存在或存在於user_views表中的軟件包表中包名。 – user2046638 2013-05-02 13:49:30

回答

0

如果你想找到一個數據庫的最大數,使用MAX()

SELECT 
    MAX(`column`) as `max` 
FROM 
    `table` 

,或者如果你想找到一個數據庫的唯一ID的數量,使用COUNT()

SELECT 
    COUNT(DISTINCT `column`) as `count` 
FROM 
    `table` 
3
select package_id, count(*) as Count 
from MyTable 
group by package_id 
order by count(*) desc 
limit 1 
+0

連接不是與此查詢選擇的package_id工作,從USER_VIEWS COUNT(*)作爲計數 通過計數INNER JOIN包上packages.package_id = user_views.package_id 組通過的package_id 順序(*)遞減 – user2046638 2013-05-02 13:43:37

+0

我想你的查詢,因爲它與@JW相比簡單,但問題是它不處理重複的權利?看到這裏http://sqlfiddle.com/#!2/edae1/4 – Pedigree 2013-05-02 13:59:07

1

下面的查詢將支持重複package_ID具有最大數量的意見。

SELECT package_ID 
FROM user_views 
GROUP BY package_ID 
HAVING COUNT(*) = 
(
    SELECT COUNT(*) totalCount 
    FROM user_views 
    GROUP BY package_ID 
    ORDER BY totalCount DESC 
    LIMIT 1 
) 
+0

JW和@ RedFilter如果我想加入包表,那麼我做什麼? – user2046638 2013-05-02 13:36:44

+0

在外部語句中加入它並將COUNT(*)'改爲COUNT(distinct u_v_id)'。 – 2013-05-02 13:37:54

+0

你能給我你想加入的表格樣本和他們的關係嗎? – 2013-05-02 13:47:48

0

如果您想獲得package_id值,然後使用CodeIgniter的內置的Active Record類:

$this->db->select('user_views.u_v_id', 'packages.package_id', 'packages.name'); 
$this->db->from('user_views'); 
$this->db->join('packages', 'user_views.package_id=packages.package_id'); 
$query = $this->db->get(); 
相關問題