1、可通過分組和組內計數來實現,語句如下:
select a, count(*) from A Group by a
2、用Group By分組:
Group By + [分組欄位](可以有多個)。在執行了這個操作以後,數據集將根據分組欄位的值將一個數據集劃分成各個不同的小組。
這里,分組欄位是a,所以數據集分成了你、我、他三個組。然後用Count(*)分別按照各個組來統計各自的記錄數量。
3、Count(*)函數:
Count(*) 函數返回表中的記錄數。注意它和Group by連用,返回組內記錄數。
』
(1)sql統計點贊數擴展閱讀:
select count(*)和select count(1)的區別
一般情況下,Select Count (*)和Select Count(1)兩著返回結果是一樣的。
假如表沒有主鍵(Primary key), 那麼count(1)比count(*)快。
如果有主鍵的話,那主鍵作為count的條件時候count(主鍵)最快。
如果你的表只有一個欄位的話那count(*)就是最快的。
count(*) 跟 count(1) 的結果一樣,都包括對NULL的統計,而count(column) 是不包括NULL的統計。
網路.Group by
㈡ SQL語句如何統計網站訪問量
如果你要訪問統計
www.51.la
就不錯, 把代碼放到頁面就可以統計, 也有顯示訪問量的代碼可以調用
但是如果你要統計的訪問量還和會員掛鉤的話,你現在提供的信息讓人無法回答;;;;
涉及到 統計代碼 和 會員判斷代碼 以及 調用代碼
㈢ SQL怎麼統計個數
方法一:
SELECT SUM(正確數)+SUM(錯誤數) AS 總記錄數,SUM(正確數),SUM(錯誤數)
FROM (
SELECT COUNT(1) 正確數,0 錯誤數
FROM TB
WHERE STATUS=1
UNION ALL
SELECT 0 正確數,COUNT(1) 錯誤數
FROM TB
WHERE STATUS=0) a
方法二:
select count(1)總記錄數,sum(case when status=1 then 1 else 0 end)正確數,sum(case when status=0 then 1 else 0 end) 錯誤數 from T
㈣ SQL 統計數量
--表A和表B分開來統計,最後合並兩個統計結果
時間在一個范圍內用 時間A between '時間1' and '時間2'
由於不是很明白你的分組統計原則,所以group by語句暫時無法提供建議
㈤ 新浪微博「點贊功能」資料庫如何設計的
對於第一個問題,設計一個schema->(messageID,likedCount),記錄每條微博的點贊數。messageID是微博的編號,likedCount是該微博的點贊人數。但是這里有兩個問題需要解決,第一是並發,第二是數據量。
每條微博都有可能有很多人同時點贊,為了保證點贊人數精確就需要保證likedCount++是原子操作,這個可以由應用程序來實現,也可以用redis的事務來實現(如果redis有事務機制或者自增功能的話),但是我覺得為了性能考慮,也可以不用實現原子操作,具體原因就不展開了。
每天都上億可能更多的微博內容產生,這樣就會有上億個新的(messageID,likedCount)生成,這樣的數據量是比較大的,單機資料庫比較難提供高效的服務,所以需要採取sharding的功能(有時候也叫分表分庫),可能根據messageID把這些schema分散到十個或者更多的shards上(據說,sina微博有600個節點,如何三個節點組成一個shard,就有200個shards),這樣每個shard處理的請求就只有原來的十分之一,從而就能提高服務的性能。
關於點贊人列表的設計,一般來說,可能想到的schema是(messageID,userID),但是這樣的設計有一個小問題,就是有些大發的微博可能會得到幾十萬的點贊,這樣就會產生幾十萬個條數據,這樣數據有點多,讀取起來可能也慢。所以可以用這樣一個schema(messageID,partID,userIDs),讓一個messageID對於多個userID,同時比對應太多的userID,所以加入一個新的partID,一個part存1000個userID,這樣幾十萬個點贊,只需要存幾百條數據。這樣做還有一個好處,用戶點擊查看點贊人時的,一般都不是完全顯示所有點贊人,而是一批一批顯示,這樣可以一次只讀一條數據,就可顯示一批點贊用戶信息。