2013-05-07 57 views
0

我需要找出有多少用户带来了一个产品(注意:我不需要用户总数只有多少用户带来)。获取每种类型的总uid

表名:买家

+-----+----------+---------+ 
| id | products | uid | 
|-----|----------|---------| 
| 1 | soap | 2 | 
| 2 | h_oil | 1 | 
| 3 | soap | 3 | 
| 4 | tea  | 1 | 
| 5 | soap | 2 | 
| 6 | h_oil | 1 | 
| 7 | soap | 3 | 
| 8 | tea  | 1 | 
+-----+----------+---------+ 

我需要这样的表结果如下:

|-----|---------------|--------------| 
| id | product_name | total_user | 
|-----|---------------|--------------| 
| 1 | soap   |  2  | 
| 2 | h_oil  |  1  | 
| 3 | tea   |  1  | 
|------------------------------------| 

我该怎么做,在一个MySQL查询?

+0

是的,你需要使用'组by'和'count'。 – Pitchinnate 2013-05-07 12:36:58

+0

请看[我的编辑](http://stackoverflow.com/posts/16419189/revisions),看看你的问题是如何呈现给其他人的。有一个预览框可以在发布前用来查看您的问题... – Ben 2013-05-07 12:37:04

回答

1
SELECT products product_name, COUNT(DISTINCT uid) total_user FROM purchases GROUP BY products; 
+0

结果谢谢Strawberry..its works .. – prasanth 2013-05-07 12:50:07

0

像这样:

SELECT 
    COUNT(*) 
FROM 
    buyer 
GROUP BY 
    products 
1

你可以使用:

SELECT product_name, COUNT(*) AS total_user FROM buyer GROUP BY product_name; 
0

总之,你正在寻找一个group by声明

SELECT uid, product_name, count(id) as total_user FROM buyer GROUP BY uid 

在这里阅读更多:

+0

'GROUP BY uid'将按用户ID对结果进行分组,问题是统计产品的购买数量,无论用户是谁 – 7ochem 2013-05-07 12:40:20

+0

雅我需要由用户ID – prasanth 2013-05-07 12:43:19

0
SELECT 
    COUNT(id) 
FROM 
    buyer 
GROUP BY 
    products