我有一个相当复杂的SQL语句,我试图编写,并不知道如何做。

基本上,我正在寻找聊天室中最活跃的人(我的聊天存储在SQL表中),但是减去他们说特定消息TIMES乘以减法的乘数的次数。

这是“基础”查询,可以很好地找出有人聊天的频率:

SELECT users.name, count(*) as count1, users.flag2, users.flag1
            FROM chat
            INNER JOIN users
            ON chat.userid=users.id
            WHERE channel=$channel
            GROUP BY userid
            ORDER BY count DESC
            LIMIT 100;

此查询将告诉我用户说出我希望减去以下倍数的特定消息的次数

SELECT userid, count(*) as count2
            FROM chat
            WHERE channel=$channel AND text = '[some message]'
            GROUP BY userid

我正在寻找的是第一个让“count”实际上等于“ count1 - count2 * 10 ”的查询。 我有一个相当艰难的时间来弄清楚如何将这两个查询组合成一个。 我将使用生成的“值”作为ORDER BY / LIMIT子句,所以我需要SQL实际执行此计算而不是在多个查询中执行此操作...

===============>>#1 票数:2 已采纳

   SELECT T1.name,(count1 - 10* COALESCE( count2,0) ) as NetCount
   FROM
    (
            SELECT userid,users.name, count(*) as count1
            FROM chat
            INNER JOIN users
            ON chat.userid=users.id
            WHERE channel=$channel
            GROUP BY userid,users.name
            ORDER BY count DESC
            LIMIT 100;
     ) as T1

  LEFT JOIN

  (
            SELECT userid, count(*) as count2
            FROM chat
            WHERE channel=$channel AND text = '[some message]'
            GROUP BY userid
  ) as T2

  ON T1.userid=T2.userid

  ask by LCC translate from so

未解决问题?本站智能推荐:

4回复

MySQL减去两个计数列

我有这样一张桌子: 等等 我想输出这样的: 其中diff是typeB:success的计数typeA:success消息 - typeB:success消息。 我可以使用以下内容获得typeA成功的计数: 但是,我无法弄清楚如何在那里放置另一个计数(对于typeB
1回复

sql-两个列的计数

我把很多行放在数据库中,我有这个: 我想要 :
3回复

带两个表的SQL计数

想知道是否有人可以通过SQL帮助新手? 右键所以基本上我想所有的客户ID与某COUNTRYCODE我可以通过在客户表做一个简单的查询,但我然后需要找出客户有多少形式的顺序表提交拿到相关。 因此总而言之,我需要从“ 客户”表中获取一个“ 客户 ID”的列表,并计算他们在“ 订单”表中
2回复

在SQL中计数-两个表

我有两个表:team(id,name)和users(id,name,team_id) 我想要以下结果: 我试过了: 但这是行不通的。
1回复

SQL从两个不同的表中添加和减去数据

我是SQL新手,这是我一生中第一个SQL程序。 我要制作一个具有以下内容的程序: 该表记录了客户一周内交付的负载数量,每个交付负载的费率(费用)以及调度费。 另一个包含费用的表,例如燃料,保险,拖车租金等。 我需要获得一个客户的所有费用的总和,所有费率的总和(每个负载
2回复

从两个SQL查询中减去结果[重复]

这个问题已经在这里有了答案: MySQL:两个结果集的差异 2个答案 我试图减去以下两个SQL查询的结果,但无法弄清楚。 我尝试过NOT IN和EXCEPT但我认为我做错了。 这是我的查询:
2回复

两个字段的SQL组由两个字段计数

我有一些像这样的MySQL代码: 返回如下数据: 我怎样才能得到每个国家的总数,像这样? (我知道它不是很有效但它只是一张小桌子。
2回复

没有嵌套选择的两个SQL计数

我有一个SQL查询,我需要更改为不嵌套选择。 我不确定该怎么做。 最好不要使用“ JOIN”(除非没有其他方法)。 编辑:我需要维护条件的用户与不维护条件的用户之间的比率
2回复

SQL两个计数与三个表

我需要一个从三个表(公司,权限A,权限B)中读取的SQL查询。 权限A和B是am:n关系表。 我想计算与公司相关的权利A和B中的条目。 公司结构: CID | Name | ... 权利结构A RIDe | CID | ... 权利结构B RIDu | CI
3回复

带两个变量的SQL累积计数

我有一个包含三列的表:a,b和id。 我想使用sql查找每个id,其id小于给定id的相等(a,b)对的数量。 因此,该方法可以解释为对sql表按id排序时,对(a,b)进行累加计数。 我真的不知道如何使用sql语法实现这一点。 您能提供一些建议吗? 我尝试过但不起作用的