SQL查找该条数据,有多少人评论,同一个人评论多次算为一次评论,需要进行分组

数据表结构如下:
id  user_name  score
1      aa       20
2      cc       30
3      dd       30
4      aa       50
5      dd       49
6      xx       40
7      aa       50

执行sql语句:

$sql = "SELECT user_name,count(*) as num FROM cmessage where csoup_id=‘".$csoup_id."‘ group by user_name";

这个sql语句,查询出来是这样的结果:

user_name    count(*)
    aa         3
    cc         1
    dd         2
    xx         1

有这个结果我们很清晰的看到,每个人评论了几条内容,这是一个数组,但是我们想要的是有多少人评论,所以我们可以这样做,

$query = $this->db->query ( $sql );
$num = $query->row_array ();
count($num);

这样就得到了我需要的数据
时间: 2024-11-10 15:42:46

SQL查找该条数据,有多少人评论,同一个人评论多次算为一次评论,需要进行分组的相关文章

sql插入多条数据的sql语句

sql插入多条数据的sql语句 有三种方法:1.InSert Into <表名>(列名)Select <列名>From <源表名>如:INSERT INTO TongXunLu (姓名,电话,电子邮件) SELECT SName,SAddress,SEmailFROM Students 这种方法需要先建好新表.2.Select (列名)Into <表名>From <源表名>如:SELECT Students.SName,Students.SAdd

HBase查找一条数据的过程

HBase中的Client如何路由到正确的RegionServer 在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的 RegionServer.什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer.Client本身并 不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?本文就是在研究源码的基础上揭秘这个过程. 在前面的文章"

Oracle 一条sql插入多条数据

Oracle一次插入多条数据. 表结构: create table aa ( ID NUMBER(11) PRIMARY KEY, NAME VARCHAR2(20) ) 第一种方式: insert into aa (ID,NAME) select 1,'1' from dual union  allselect 2,'2' from dual 第二种方式: INSERT ALLINTO aa (ID,NAME ) VALUES (3,'3')INTO aa (ID,NAME ) VALUES

MySQL实现一条sql完成多条数据的更新

原始功能: update categories SET display_order= 3,title = 'New Title 1' where id=1; update categories SET display_order= 4,title = 'New Title 2' where id=2; update categories SET display_order= 5,title = 'New Title 3' where id=3; 功能改进: UPDATE categories S

sql取第一条数据

在SQL Server数据库中,使用top关键字:        SELECT TOP number|percent column_name(s) FROM table_name        在MySQL数据库中,使用LIMIT关键字:        SELECT column_name(s) FROM table_name LIMIT number        例子:SELECT * FROM Persons LIMIT 1 在Oracle数据库中,使用ROWNUM关键字: SELECT

使用SQL 查询 第一条数据

select * from (select t.*, row_number() OVER(PARTITION BY t.RTID ORDER BY t.createdate desc ) as row_flg from t_sp_processfile t) temp where temp.row_flg = '1'

MySQL 分组后取每组前N条数据

与oracle的 rownumber() over(partition by xxx  order by xxx )语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS emp; CREATE TABLE emp ( empno decimal(4,0) NOT NULL, ename varchar(10) DEFAULT NULL, job varchar(9) DEFAULT NULL, mgr decimal(4,0) DEFAULT NULL, hi

sql server 获取每一个类别中值最大的一条数据

sql server 获取每一个类别中值最大的一条数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 /* 数据如下: name val memo a    2   a2(a的第二个值) a    1   a1--a的第一个值 a    3   a3:a的第三个值 b    1   b1--b的第一个

稍微复杂的sql逻辑(从数据库逆序查找有限条记录(limit))并按相反顺序输出

项目中有一个业务需求是:默认加载15条历史记录(按时间顺序从早到晚). 下面是我构造的sql逻辑,mark一下,亲测可行. SELECT * FROM (SELECT *FROM group_chatmsg_v WHERE ((group_Id=46 AND send_user_id=28 AND receive_user_id=70) OR (group_Id=46 AND receive_user_id=28 AND STATUS=1)) AND is_delete =0 ORDER BY