当前位置:首页 > 百科大全

query的函数用法(sql query怎么记忆分析)

2022-11-01 14:48:33

  如果您需要在Google表格中操作数据,QUERY功能可以提供帮助!它为您的电子表格带来了强大的数据库式搜索功能,因此您可以以您喜欢的任何格式查找和过滤数据。我们将引导您了解如何使用它。

  使用查询功能

  如果您曾经使用SQL与数据库进行过交互,那么掌握QUERY函数并不难。典型的QUERY函数的格式类似于SQL,并将数据库搜索的强大功能带到了Google表格中。

  使用QUERY函数的公式格式为.您将“数据”替换为您的单元格范围(例如,“A2:D12”或“A:D”),并将“查询”替换为您的搜索查询。

  =QUERY(data,query,headers)

  可选的“headers”参数设置要包含在数据范围顶部的标题行数。如果您有一个跨两个单元格的标题,例如A1中的“First”和A2中的“Name”,这将指定QUERY使用前两行的内容作为组合标题。

  在下面的示例中,Google表格电子表格的工作表(称为“员工列表”)包含员工列表。它包括他们的姓名、员工ID号、出生日期以及他们是否参加过强制性员工培训课程。

  在第二张表上,您可以使用QUERY公式提取所有未参加强制培训课程的员工的列表。此列表将包括员工ID号、名字、姓氏以及他们是否参加了培训课程。

  要使用上面显示的数据执行此操作,您可以键入.这将查询“员工列表”表上从A2到E12范围内的数据。

  =QUERY('Staff List'!A2:E12,"SELECT A,B,C,E WHERE E='No'")

  与典型的SQL查询一样,QUERY函数选择要显示的列(SELECT)并标识搜索参数(WHERE)。它返回A、B、C和E列,提供所有匹配行的列表,其中E列(“参加培训”)中的值是包含“否”的文本字符串。

  如上所示,初始列表中的四名员工尚未参加培训课程。QUERY函数提供了此信息,以及匹配的列以在单独的列表中显示他们的姓名和员工ID号。

  这个例子使用了一个非常具体的数据范围。您可以更改此设置以查询A到E列中的所有数据。这将允许您继续将新员工添加到列表中。每当您添加新员工或有人参加培训课程时,您使用的QUERY公式也会自动更新。

  正确的公式是。此公式忽略单元格A1中的初始“员工”标题。

  =QUERY('Staff List'!A2:E,"Select A,B,C,E WHERE E='No'")

  如果您将未参加培训的第11位员工添加到初始列表中,如下所示(Christine Smith),QUERY公式也会更新,并显示新员工。

  高级查询公式

  QUERY函数用途广泛。它允许您使用其他逻辑运算(如AND和OR)或Google函数(如COUNT)作为搜索的一部分。您还可以使用比较运算符(大于、小于等)来查找两个数字之间的值。

  将比较运算符与QUERY一起使用

  您可以将QUERY与比较运算符(例如小于、大于或等于)一起使用来缩小和过滤数据。为此,我们将在“员工列表”表中添加一个额外的列(F),其中包含每个员工获得的奖项数量。

  使用QUERY,我们可以搜索至少获得过一项奖项的所有员工。这个公式的格式是。

  =QUERY('Staff List'!A2:F12,"SELECT A,B,C,D,E,F WHERE F>0")

  这使用大于比较运算符(>)来搜索列F中大于零的值。

  上面的示例显示QUERY函数返回了一个包含八名获得一个或多个奖项的员工的列表。在11名员工中,有3人从未获奖。

  将AND和OR与QUERY一起使用

  嵌套逻辑运算符函数(如AND和OR)在较大的QUERY公式中运行良好,可将多个搜索条件添加到公式中。

  测试AND的一个好方法是搜索两个日期之间的数据。如果我们使用员工列表示例,我们可以列出从1980年到1989年出生的所有员工。

  这也利用了比较运算符,例如大于或等于(>=)和小于或等于(<=)。

  这个公式的格式是。这还使用了一个额外的嵌套DATE函数来正确解析日期时间戳,并查找介于1980年1月1日和1989年12月31日之间的所有生日。

  =QUERY('Staff List'!A2:E12,"SELECT A,B,C,D,E WHERE D>=DATE'1980-1-1'and D<=DATE'1989-12-31'")

  如上图,1980年、1986年和1983年出生的三名员工符合这些要求。

  您也可以使用OR来产生类似的结果。如果我们使用相同的数据,但切换日期并使用OR,我们可以排除所有出生于1980年代的员工。

  此公式的格式为.

  =QUERY('Staff List'!A2:E12,"SELECT A,B,C,D,E WHERE D>=DATE'1989-12-31'or D<=DATE'1980-1-1'")

  在最初的10名员工中,有3名出生于1980年代。上面的例子显示了剩下的七个人,他们都是在我们排出的日期之前或之后出生的。

  将COUNT与QUERY一起使用

  除了简单地搜索和返回数据之外,您还可以将QUERY与其他函数(如COUNT)混合来操作数据。假设我们要清楚名单上所有参加过和未参加过强制性培训课程的员工。

  为此,您可以像这样将QUERY与COUNT结合使用。

  =QUERY('Staff List'!A2:E12,"SELECT E,COUNT(E)group by E")

  关注E列(“参加培训”),QUERY函数使用COUNT计算找到每种类型值(“是”或“否”文本字符串)的次数。在我们的名单中,六名员工已完成培训,四名尚未完成。

免责声明:本文由用户上传,如有侵权请联系删除!