相关疑难解决方法(0)

SQL:如何获取列中每个不同值的计数?

我有一个名为"posts"的SQL表,如下所示:

id | category
-----------------------
1  | 3
2  | 1
3  | 4
4  | 2
5  | 1
6  | 1
7  | 2
Run Code Online (Sandbox Code Playgroud)

每个类别编号对应一个类别.我如何计算每个类别在一个SQL查询中出现在帖子上的次数?

例如,这样的查询可能会返回一个符号数组,如下所示: (1:3, 2:2, 3:1, 4:1)


我当前的方法是对每个可能的类别使用查询,例如:SELECT COUNT(*) AS num FROM posts WHERE category=#,然后将返回值组合成最终数组.但是,我正在寻找一种只使用一个查询的解决方案.

mysql sql count

152
推荐指数
1
解决办法
23万
查看次数

计算有多少行具有相同的值

如何编写SQL查询以计算表的num列中特定num值的总数.

例如,选择num = 1的位置

结果:2

+-----+-----+
| NAME | NUM |
+=====+=====+
| SAM  |  1  | 
+-----+-----+
| BOB  |  1  |
+-----+-----+
| JAKE |  2  | 
+-----+-----+  
| JOHN |  4  | 
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

mysql sql

67
推荐指数
5
解决办法
17万
查看次数

计算每个唯一值的出现次数

基本上我有一个类似于这样的表:

time.....activities.....length  
13:00........3.............1  
13:15........2.............2  
13:00........3.............2  
13:30........1.............1  
13:45........2.............3  
13:15........5.............1  
13:45........1.............3  
13:15........3.............1  
13:45........3.............2  
13:45........1.............1  
13:15........3.............3  
Run Code Online (Sandbox Code Playgroud)

几个笔记:

  • 活动可以在1到5之间
  • 长度可以在1到3之间

查询应该返回:

time........count  
13:00.........2  
13:15.........2  
13:30.........0  
13:45.........1  
Run Code Online (Sandbox Code Playgroud)

基本上,对于每个唯一的时间,我想要计算活动值为3的行数.

那么我可以说:

At 13:00 there were X amount of activity 3s.
At 13:45 there were Y amount of activity 3s.
Run Code Online (Sandbox Code Playgroud)

然后我想要计算活动1s,2s,4s和5s.所以我可以绘制每个独特时间的分布.

sql count

31
推荐指数
3
解决办法
10万
查看次数

MYSQL计数(*)或计数(1)有什么好处?

相关(SQL Server): 计数(*)与计数(1)

你能告诉我性能有哪些(MySQL)吗?算(*)还是算(1)?

mysql sql performance

24
推荐指数
1
解决办法
2万
查看次数

在同一查询中选择ip of Count和Count of DISTINCT ip

我有这样的表结构:

TABLE NAME : counter

id  |        datetime       |  url  | ip
-------------------------------------------
1   |2013-04-12 13:27:09    | url1  | ip01
2   |2013-04-13 10:55:43    | url2  | ip02
3   |2013-04-14 11:14:12    | url1  | ip03
4   |2013-04-15 23:23:55    | url2  | ip04
5   |2013-05-02 08:34:44    | url1  | ip03
Run Code Online (Sandbox Code Playgroud)

通过智能SELECT查询,我想获取3列:

Distinct URL    |    count of ip            |    count of distinct ip
                |    for each distinct url  |    for each distinct url  
-------------------------------------------------------------------
url1            |    3                      |    2    
url2            | …

mysql sql group-by count distinct

3
推荐指数
1
解决办法
2067
查看次数

Mysql从单个列中选择计数值

A有一个名为key的列 - 1,1,2,2,2,2,3现在我用3个查询来做:

SELECT count(key) as k FROM `test` WHERE key=1
SELECT count(key) as k FROM `test` WHERE key=2
SELECT count(key) as k FROM `test` WHERE key=3
Run Code Online (Sandbox Code Playgroud)

如何在一个查询中计算多少1,2,3?

mysql

3
推荐指数
1
解决办法
1万
查看次数

选择不同的值,并计算出现次数

我有一个类和类的类别列表。我想显示每个类别有多少个类。像这样的东西:

category | # of classes
Sports   | 12
Fitness  | 32
Climbing | 8
Run Code Online (Sandbox Code Playgroud)

该表的设置使每个类都位于包含类别的行上。

category | class_name
fitness  | Learn to Skate
Run Code Online (Sandbox Code Playgroud)

我有以下 SQL,它生成不同类别的列表:

select 
    distinct category

from classes

order by category asc

; Output:
; Fitness
; Climbing
; Recreation
; ...
Run Code Online (Sandbox Code Playgroud)

我还想显示有多少个类。我认为这很简单:

select 
    distinct category,
    count(distinct category)

from classes

order by category asc

; Output:
; Fitness | 11
Run Code Online (Sandbox Code Playgroud)

输出几乎有效,但它只产生一行。没有count()它,它会产生 11 行,正如预期的那样。为什么这只产生一行?我怎样才能做到这一点?

mysql

2
推荐指数
1
解决办法
3368
查看次数

标签 统计

mysql ×6

sql ×5

count ×3

distinct ×1

group-by ×1

performance ×1