日期按月分组
select count(id) as quo_count,date_format(created_at,'%Y-%m') as quo_month from inquiries where send_quotation_at is not null and created_at>='2017-01-10' group by quo_month
行转列:
select a.bd_id,sum(count_id) sum_ids,GROUP_CONCAT(a.reg_trader_start_at,"@",a.count_id) from (select count(id) as count_id,bd_id,DATE_FORMAT(trader_start_at,'%Y-%m') as reg_trader_start_at from companies where trader_start_at > "2017-01-01" group by reg_trader_start_at ,bd_id ) as a group by a.bd_id
关联更新:
update a join b on a.b_id=b.id set a.aa=b.aa where b.cc = “1111”
统计个数:
SELECT co.trader_id as dealer_id, emp.trader_level ,companies.id as client_id, companies.frequency as buy_level ,
count(*) as order_detail_total,
SUM(CASE WHEN o_detail.detail_status!=7 THEN 1 END) as uncancel_order_total,
SUM(CASE WHEN o_detail.ship_status=2 and o_detail.detail_status!=7 THEN 1 END) as effective_order_total
from order_details o_detail
left join customer_orders co on co.id = o_detail.customer_order_id
left join companies on companies.id = co.company_id
left join employees emp on emp.id = co.trader_id
where o_detail.created_at >= "#{report_month}" and o_detail.created_at < "#{end_month}" and co.trader_id is not null
group by client_id
快速校验数据SQL正确性:
message="select o.* from ("+message+")o where 1=2"
添加分页查询:
message="SELECT * FROM (SELECT A.*, ROWNUM RN FROM ("+message+")A
WHERE ROWNUM <= #{(params[:page].to_i)*30})
WHERE RN >= #{(params[:page].to_i-1)*30+1}" if params[:page]
message
分享到:
相关推荐
### SQL优化的关键方法 #### 一、选择最有效的表名顺序 在构建SQL查询时,尤其是在涉及多个表的连接查询中,表名的顺序对于查询性能有着重要影响。Oracle数据库的解析器是从右向左处理FROM子句中的表名。为了优化...
### SQL技巧:常用SQL操作语句详解 #### 1. 复制表(仅复制结构) **场景描述:** 在数据库管理过程中,有时我们需要创建一个与现有表具有相同结构但不包含任何数据的新表。例如,当我们需要为测试或备份目的创建...
### DBA常用SQL总结 #### 一、DBA的基本职责与技能要求 作为一个数据库管理员(DBA),除了具备一定的技术背景之外,还需要深入了解业务流程以及业务对于数据库的具体操作需求。这意味着DBA不仅要能够确保数据库...
本文将详细介绍几种SQL去重的方法,并通过具体的示例来解释每种方法的应用场景及其背后的原理。 ### 方法一:使用 `SELECT DISTINCT` `SELECT DISTINCT` 是最常用的去重方式之一,它可以返回指定列中的不同值。...
本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录(返回所有重复记录) **SQL语句**: ```sql SELECT * FROM t_info a WHERE (SELECT COUNT(*) FROM t...
本文将深入解析几种常见的SQL查询重复记录的方法,并通过示例代码加以说明,帮助读者更好地理解和掌握这些技巧。 ### SQL查询重复记录方法概览 #### 方法一:查询所有重复记录 首先,我们来看一种查询所有重复记录...
在Oracle SQL查询中,有几种常见的高级查询技术值得深入研究。例如,联接(JOIN)操作允许你合并来自多个表的数据,以获取更全面的信息。内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...
在Oracle数据库中,SQL单记录函数是一种非常实用且常用的工具,用于处理数据、提取特定信息或进行数据格式转换等操作。这些函数可以应用于单个记录,并返回一个结果。下面将详细介绍几个重要的Oracle SQL单记录函数...
#### 二、几种常用方法介绍 在实现多行数据到字符串的转换时,可以采用多种方法。这里,我们将重点关注七种常用的SQL方法,按性能从高到低排序如下: 1. `max(decode())||` 2. `xmlagg()` 3. `wmsys.wm_concat()` ...
下面将详细介绍几种常用的SQL查询语句,帮助数据库管理员更好地监控和管理数据库。 #### 二、查看表空间的名称及大小 **SQL命令:** ```sql SELECT t.tablespace_name, ROUND(SUM(d.bytes / (1024 * 1024)), 0) AS...
以上内容涵盖了MySQL数据库中最常用的几种SQL语句类型:插入、更新、删除以及查询。每种类型的语句都有其独特的应用场景,并且通过实际例子进行了说明。熟练掌握这些基础SQL语句能够帮助开发者更加高效地管理和操作...
本文将详细介绍在SQL Server、Oracle以及MySQL这三种常用数据库中实现分页查询的方法。 ### SQL Server 分页查询 #### 方法一:使用 `TOP` 关键字 SQL Server 提供了 `TOP` 关键字来进行分页查询。这种方式比较...
在“SQL数据库语言学习记录”中,我们将会探讨以下几个关键知识点: 1. 数据库基础:首先,理解数据库的概念至关重要。数据库是一个有组织的数据集合,它能够存储、检索和管理信息。SQL数据库遵循关系模型,其中...
在进行多表查询时,通常有几种方法,如简单查询(通过逗号分隔列出所有表)和JOIN操作。简单查询虽然能获取所有表的信息,但没有明确的关联条件,可能导致数据的错误匹配。JOIN语句则允许指定连接条件,确保数据的...
在Access数据库管理中,SQL(Structured Query Language)是一种强大的语言,用于处理和操作数据。本文主要探讨Access常用内置的SQL函数,分为日期时间函数、文本字符串函数和统计类函数三大类。 **一、日期时间...
2. **常用SQL语句**: - **选择数据**:`SELECT * FROM table_name`用于获取表中的所有数据。通过添加`WHERE`子句可以指定条件,如`SELECT * FROM table_name WHERE column_name = value`。 - **排序数据**:`...
### 常用SQL Server编程技巧 在数据库管理和开发领域,SQL Server作为一种广泛使用的数据库管理系统,在数据存储、处理和检索方面发挥着重要作用。本文将基于提供的文件内容,深入探讨几个实用且高效的SQL Server...
根据给定文件中的标题“学生_课程_成绩_教师50个常用sql”与描述“练习sql用”,本文将详细解读文件中所提及的关键SQL知识点,并通过实例来具体阐述如何运用这些知识点解决实际问题。 ### SQL基础知识概述 SQL...
以下是几种常见的数据记录筛选方式: 1. **基本查询**: ```sql SELECT * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC] ``` - 这条语句用于选择满足`字段名 = 字段值`条件的所有记录,并按`字段名...
以上列举了SQL注入攻击中常用的几种技术手段,从最初的判断是否有注入点到获取数据库结构,再到具体的字段和记录信息,每一步都是攻击者进一步渗透的关键。对于开发人员来说,了解这些攻击方式可以帮助更好地设计...