当前位置: 首页 > 面试题库 >

在同一查询中选择ip计数和DISTINCT ip计数

巴宏恺
2023-03-14
问题内容

我有一个这样的表结构:

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

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

唯一网址| ip数| 不同IP的数量
                | 对于每个不同的URL | 对于每个不同的网址  
-------------------------------------------------- -----------------
url1 | 3 | 2个    
url2 | 2 | 2个

我在的此解决方案的帮助下提出了我的查询,该查询为我提供了我需要的前两列:

SELECT url, COUNT(*) AS total_ip FROM counter GROUP BY url ORDER BY total_ip DESC

但是,如何将第三列也添加到查询中?

你能帮我么?


问题答案:

正如您自己提到的那样,您可以使用DISTINCT关键字来获取与众不同URL的。使用COUNT获得的计数IPCOUNT(DISTINCT ID)获得不同的IP每个URL小号

试试这个:

SELECT DISTINCT URL AS D_URL
      ,COUNT(IP) AS IP
      ,COUNT(DISTINCT IP) AS D_IP
FROM counter
GROUP BY URL

输出:

╔═══════╦════╦══════╗
║ D_URL ║ IP ║ D_IP ║
╠═══════╬════╬══════╣
║ url1  ║  3 ║    2 ║
║ url2  ║  2 ║    2 ║
╚═══════╩════╩══════╝


 类似资料:
  • 问题内容: 是否有可能获得总表,并在相同的查询。像这样的东西 问题答案: 您可以随时尝试执行以下操作: 该子句将为您提供查询中所有行的计数。

  • 问题内容: 我有一个Oracle表,其中包含一组范围(RangeA和RangeB)。这些列是varchar,因为它们可以同时容纳数字和字母数字值,如以下示例所示: 我需要执行一个查询,该查询仅返回具有数值的记录,并对该查询执行Count。到目前为止,我已经尝试过使用两个不同的查询来做到这一点,但没有任何运气: 查询1: 查询2: 子查询工作正常,因为我得到的两个记录都只有数字值,但是查询的COUN

  • 我想使用QueryDSL库构建select count查询,如下所示: 中选择计数(1) 我创建了下一个代码: 由于结果selectStatement是Next: 能否请一些人建议如何重写上面的代码

  • 问题内容: 我有一个关于MYSQL中的选择查询的问题 我有两个不同的表,我想获得一定的结果 我使用了COUNT方法,该方法只给我结果(> = 1) 但实际上,我想使用包含零的所有计数怎么做? 我的查询是: 第一张桌子:Content_hits 第二张表:Content_tag 结果但不完整 例如:tag_id = 1的Subsrciber6应该具有count(*)= 0 问题答案: 现在,您已经进

  • 问题内容: 我需要一个相对简单的查询,但是JPA使其很难创建。 SQL变量如下所示: [编辑:OrderID不是主键。表格中可以有更多等于的OrderId] 我需要设置一个传递给我的方法的变量。 我找到了文档, 但似乎无法将它们全部包装在一起。 这是我到目前为止的内容: 问题答案:

  • 问题内容: 我正在尝试从以下查询中获取行数。我只得到行计数为1,但有35条记录。您能否让我知道如何从内部查询中获取计数? 谢谢 问题答案: 您缺少FROM,需要为子查询指定别名。