2012-10-03 56 views
0

我想寫一個mysql查詢來獲取我所有的表數據和總記錄數。如何使用mysql單個查詢獲取總數的數據

例如,這是我的表

ID  Name typeId 
1  test1 1 
2  test2 1 
3  test3 2 

如果我將與類型ID 1來獲取數據,我需要這樣的

Name count 
test1 2 
test2 2 

我如何寫sql對於這種結果的結果。 我不想子查詢。我想用子查詢獲取數據 請幫助我。

感謝

+1

是計數只是在表中的記錄數,或別的東西? – BugFinder

+0

您編輯的示例似乎沒有任何意義。你可能是想在輸出中放置'typeId'而不是'Name'?無論如何,爲什麼在這兩種情況下計數等於2? –

回答

2

看着你想要的結果,這是一個奇怪的要求,因爲你希望所有的計數(不是針對每個Name)。您可以使用子查詢的是:

SELECT `Name`, (SELECT COUNT(*) FROM myTable) as `COUNT` 
FROM myTable 

或者,如果你想指望每個Name試試這個:

SELECT `Name`, COUNT(*) AS `COUNT` 
FROM myTable 
GROUP BY `Name`; 

編輯:

當你有更新了您的問題,您的查詢應該是這樣的:

SELECT `Name`, 
(SELECT COUNT(*) FROM myTable WHERE TypeId = 1 GROUP BY TypeId) as `COUNT` 
FROM myTable WHERE TypeId = 1; 

See this SQLFiddle

+0

請檢查我是否更新了我的問題 – learner

+0

@learner。更新了答案。但請記住,在提出問題之前始終要清楚。請不要像在此問題中那樣更改您的要求。如果你這樣做,所有給定的答案將更新問題變得錯誤。 – hims056

+0

嗨與出使用子查詢可以ü獲取相同的結果數據? – learner

0
SELECT name, count(*) AS count FROM <TABLE NAME> GROUP BY name; 
1
select name,count(*) as count from tablename where typeid=1 group by name 
+0

請檢查我更新的問題。 – learner

+0

請檢查回答 – jainvikram444

2

或者是使用CROSS JOIN這裏

SELECT name, c.totalCount 
FROM Table1, (SELECT COUNT(*) totalCount FROM Table1) c 

SQLFiddle Demo

+0

請檢查我更新的問題。我不想子查詢。我想用子查詢獲取數據 – learner

0
SELECT t.*, count(\*) AS count FROM myTableName as t GROUP BY t.Name; 
相關問題