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

SQL计数(*)和不同

计向晨
2023-03-14
问题内容

为什么不能count(distinct *)在SQL中使用?如要计算所有不同的行?


问题答案:
select count(*) from (select distinct * from MyTable) as T

尽管我强烈建议您重新考虑使用的任何查询DISTINCT。在大多数情况下,GROUP BY更合适(更快)。

编辑: 阅读问题注释后,我应该指出,您 绝不
应该要求DBMS做比实际需要做的更多的工作来获得结果。如果您事先知道表中没有任何重复的行,请不要使用DISTINCT



 类似资料:
  • 问题内容: 我有一个类似于此的MySQL-db表: 我想查找每个日期每个班级有多少人,所以我得到以下结果: 如何使用SQL做到这一点?我想我需要计算,分组,也许还需要一些加入,但是我不知道该怎么做。 问题答案: 您可以使用条件聚合: 这在MySQL中使用了一种简写形式,该形式将布尔表达式视为整数。以上每个都等同于。

  • 问题内容: 我有一张销售数据的SQL表(如下面的表),如何生成内联小计的结果集,理想情况下按收入最高的客户的降序对结果进行排序? 因此,给出如下表: 我会得到以下结果: 到目前为止,我可以提供以下查询: 但是,查询使用“ ZZZZ”而不是“总计”(此后可以通过查找和替换来固定),但是查询没有按金额顺序排序。 编辑 :请随时发布不涉及排序的答案。实际上,一些答案对我很有帮助。 问题答案: 看看像

  • 我有一个每周客户和商店信息数据集, 问题-我必须计算的特征,如总独特的客户在最近1,2,3,4,5,6周..等,截至当前的一周。 我在使用count distinct of customers column over window函数时出错- 我尝试了concat函数创建数组,也没有工作-谢谢帮助! 错误-SQL编译错误:distinct不能与窗口框架或订单一起使用。 如何修复此错误? 输入 输出

  • 我尝试了一些具有分析功能的示例,并创建了一个sql fiddle来理解分区上的count distinct by Clause,这就是我的SQLFiddle。 如果查看结果集,我会认为第三行的valcount为1,但它是2,不确定为什么会这样。

  • 问题内容: 我有桌子组, 我能够算出以下状态数。 我还有另一种状态,例如“待审核,已拒绝”。但是表中没有项目,但是我希望它们显示为零计数,如下所示。 SQL语句将使之成为可能? 问题答案: 试试这个

  • 问题内容: 我有一张表,我需要在一个语句中计算两个具有不同条件的聚合函数。我怎样才能做到这一点? 伪代码如下: 问题答案: 这与tombom的答案相同,但是具有SQL Server语法: