二十三、SQL 数据分析实战(10个简单的SQL题目)

2023-11-18

题目1: 比赛名单整理

现有一张参加比赛的队伍名称表 easy_competition_list,easy_competition_list 表的数据如下所示:

mysql> select * from easy_competition_list;
-- team_name 参数队名
+------------+
| team_name  |
+------------+
| 谁与争锋队 |
| 必胜队     |
| 乘风破浪队 |
| 群英汇队   |
| 梦之队     |
+------------+
5 rows in set (0.00 sec)

【题目1】每个参赛队伍都会和其他参赛队伍开展一次组队比赛,要求输出两两参赛队伍的所有比赛情况组合(两者分别为队伍A和队伍B),并按照队名依次升序排列。输出内容包括:队伍A、队伍B,结果样例图如下所示:

+------------+------------+
| 队伍A      | 队伍B      |
+------------+------------+
| 乘风破浪队 | 必胜队     |
| 乘风破浪队 | 梦之队     |
| 乘风破浪队 | 群英汇队   |
| 乘风破浪队 | 谁与争锋队 |
| 必胜队     | 梦之队     |
| 必胜队     | 群英汇队   |
| 必胜队     | 谁与争锋队 |
| 梦之队     | 群英汇队   |
| 梦之队     | 谁与争锋队 |
| 群英汇队   | 谁与争锋队 |
+------------+------------+
10 rows in set (0.00 sec)

【题目1解析】使用表的自连接,通过在队名之间以<的方式连接来确保队伍不会和自身匹配,并依次按照队名进行升序排列即可,本题的SQL代码如下:

mysql> SELECT a.team_name AS 队伍A,b.team_name AS 队伍B FROM easy_competition_list
    -> a INNER JOIN easy_competition_list b ON a.team_name < b.team_name ORDER BY 队伍A,队伍B;

题目2: 热门游戏排行

现在有一张游戏下载量排行表 easy_game_ranking,easy_game_ranking 表的数据如下所示:

mysql> SELECT * FROM easy_game_ranking;
-- ① game: 游戏名称 VARCHAR ② category: 游戏类别 VARCHAR ③ downloads: 游戏下载量 INT
+------+----------+-----------+
| game | category | downloads |
+------+----------+-----------+
| A    | puzzle   |     13628 |
| B    | shooting |      2830 |
| C    | shooting |      1920 |
| D    | action   |     23800 |
| E    | puzzle   |       842 |
| F    | shooting |     48201 |
| G    | action   |      4532 |
| H    | puzzle   |      1028 |
| I    | action   |     48910 |
| J    | shooting |       342 |
| K    | puzzle   |     32456 |
| L    | action   |      2801 |
| M    | puzzle   |      1248 |
| N    | action   |      8756 |
+------+----------+-----------+
14 rows in set (0.00 sec)

【题目2】查询每个类别下载量排在前两名的游戏。输出内容包括:category(游戏类别)、game(游戏名称),结果样例如下图所示:
在这里插入图片描述
【题目2解析】典型组内排名问题,对于这个问题可以利用窗口函数来实现,利用DENSE_RANK()函数生成每个游戏类别内每个游戏的排序结果,最后通过排序结果筛选出我们所需要的数据,参考代码如下:

-- ① 使用窗口函数+分组聚合
mysql> SELECT category, GROUP_CONCAT(game) as game
    -> FROM (SELECT *, DENSE_RANK() OVER (PARTITION BY category ORDER BY downloads DESC) AS 'downloads_rank'
    ->       FROM easy_game_ranking)
    ->          AS a
    -> WHERE a.downloads_rank < 3
    -> GROUP BY category;

-- ② 使用分组聚合+文本字符串处理函数
-- 通过分组统计,在每组内按照游戏下载量降序排列并使用GROUP_CONCAT()函数进行连接,然后使用
-- SUBSTRING_INDEX()函数提取出前两个游戏名称即可得到结果
mysql> SELECT category, SUBSTRING_INDEX(GROUP_CONCAT(game ORDER BY downloads DESC), ',', 2) AS game
    -> FROM easy_game_ranking
    -> GROUP BY category;

题目3: 社区生鲜App覆盖分析

现有一张用户安装的社区生鲜 App 表 easy_fresh_food,easy_fresh_food 表的数据如下所示:

mysql> SELECT * FROM easy_fresh_food;
-- user_id(用户ID): VARCHAR app(用户安装的社区生鲜App列表): VARCHAR
+---------+-------+
| user_id | app   |
+---------+-------+
| u001    | A,B   |
| u002    | C,D,A |
| u003    | E     |
| u004    | A     |
| u005    | F,D   |
| u006    | E,G   |
| u007    | C,B   |
| u008    | H,J   |
| u009    | J     |
| u010    | A,K,E |
+---------+-------+
10 rows in set (0.00 sec)

【题目3】查询安装了 A App的用户人数 。输出内容包括:num(用户人数),结果样例如下图所示:
在这里插入图片描述
【题目3解析】思路①: 模糊匹配,只要有A就计数,可以使用like关键字或者是mysql内置的函数FIND_IN_SET或者是INSTR。思路②: 按照 , 进行分割,将一条数据拆分成多行数据,然后分组计数,参考代码如下:

-- 第①种写法: 模糊匹配使用LIKE或者是REGEXP关键字
mysql> SELECT COUNT(*) AS num FROM easy_fresh_food WHERE app LIKE '%A%';
mysql> SELECT COUNT(*) AS num FROM easy_fresh_food WHERE app REGEXP 'A';
-- 第②种写法: 模糊匹配使用mysql内置函数 FIND_IN_SET或者是INSTR
mysql> SELECT SUM(IF(FIND_IN_SET('A', app), 1, 0)) AS num
    -> FROM easy_fresh_food;

mysql> SELECT SUM(CASE WHEN INSTR(app, 'A') > 0 THEN 1 ELSE 0 END) AS num
    -> FROM easy_fresh_food;

-- 第③种写法: 先将一行数据拆分为多行 然后分组计算
-- 如果 mysql.help_topic 没有权限,可以自己创建一张临时表,用来与要查询的表连接查询
-- 创建临时表,并给临时表添加数据: 注意:
-- 1.临时表必须有一列从 0 或者 1 开始的自增数据
-- 2.临时表表名随意,字段可以只有一个
-- 3.临时表示的数据量必须比 (LENGTH(easy_fresh_food.app)-LENGTH(REPLACE(easy_fresh_food.app, ',', '')) + 1) 的值大
mysql> SELECT *
    -> FROM (SELECT
    -> SUBSTRING_INDEX(SUBSTRING_INDEX(easy_fresh_food.app, ',', b.help_topic_id + 1), ',', - 1) AS app_name,
    -> COUNT(user_id)                                                                            AS num
    ->       FROM easy_fresh_food
    ->                INNER JOIN mysql.help_topic b ON b.help_topic_id < (LENGTH(easy_fresh_food.app) -
    ->                                                                    LENGTH(REPLACE(easy_fresh_food.app, ',', '')) + 1)
    ->       WHERE `app` <> ''
    ->       GROUP BY app_name) a
    -> WHERE a.app_name = 'A';
+----------+-----+
| app_name | num |
+----------+-----+
| A        |   4 |
+----------+-----+
1 row in set (0.00 sec)

题目4: 社区团购行为分析

现有一张社区团购用户订单表 easy_group_buy,该表记录了用户在不同日期通过不同渠道登录团购页面和产生订单的情况,easy_group_buy 表的数据如下表所示:

mysql> SELECT * FROM easy_group_buy;
-- user_id(用户id):VARCHAR login_source(登录渠道):VARCHAR login_date(登录日期):DATE order_count(产生订单数量):INT
+---------+--------------+------------+-------------+
| user_id | login_source | login_date | order_count |
+---------+--------------+------------+-------------+
| a001    | applet       | 2021-03-20 |           1 |
| a002    | application  | 2021-03-20 |           0 |
| a003    | web          | 2021-03-21 |           0 |
| a002    | application  | 2021-03-21 |           2 |
| a001    | applet       | 2021-03-21 |           4 |
| a003    | application  | 2021-03-22 |           1 |
| a001    | applet       | 2021-03-22 |           1 |
| a004    | application  | 2021-03-23 |           1 |
+---------+--------------+------------+-------------+
8 rows in set (0.00 sec)

【题目4-1】查询每个用户首次登录的渠道名称。输出内容包括:user_id(用户ID)、login_source(登录渠道),结果样例如下图所示:
在这里插入图片描述
【题目4-1解析】思路①: 使用MIN()函数找出每个用户的最早登录时间,将原始表和每个用户的最早登录时间进行INNER JOIN,以获取用户ID和用户登录渠道。思路②: 窗口函数,参考代码如下:

-- 第①种写法
mysql> SELECT a1.user_id, a1.login_source
    -> FROM easy_group_buy a1
    ->          INNER JOIN (SELECT user_id, MIN(login_date) AS first_login_date FROM easy_group_buy GROUP BY user_id) a2
    ->                     ON a1.login_date = a2.first_login_date AND a1.user_id = a2.user_id;

-- 第②种写法
mysql> SELECT user_id, login_source
    -> FROM (SELECT user_id, login_source, DENSE_RANK() OVER (PARTITION BY user_id ORDER BY login_date ASC ) AS login_date_rank
    ->       FROM easy_group_buy) temp_table
    -> WHERE temp_table.login_date_rank = 1;

【题目4-2】查询用户登录日期和累计下单数量。输出内容包括:user_id(用户ID)、login_date(登录日期)、total_order_count(累计下单数量),结果样例如下图所示:
在这里插入图片描述
【题目4-2解析】使用SUM()函数,根据用户ID进行分组并根据登录日期排序,即可得到用户登录日期和累计下单数量,涉及知识点:窗口函数,参考代码如下:

mysql> SELECT user_id,
    ->        login_date,
    ->        SUM(order_count) OVER (PARTITION BY user_id ORDER BY login_date)
    ->            AS total_order_count
    -> FROM easy_group_buy;

题目5: 统计字符出现次数

现有一张原始文本表 easy_original_text,easy_original_text 表的数据如下表所示:

mysql> SELECT * FROM easy_original_text;
-- text_id(文本ID): VARCHAR text_content(文本内容): VARCHAR
+---------+--------------+
| text_id | text_content |
+---------+--------------+
| t001    | !**@%&       |
| t002    | *            |
| t003    | @@!***&*     |
| t004    | %&*$@        |
| t005    | *******      |
| t006    | 123456       |
+---------+--------------+
6 rows in set (0.00 sec)

【题目5】统计每条文本中符号出现的次数。输出内容包括:text_id(文本ID)、num(符号*出现的次数),结果样例如下图所示:
在这里插入图片描述
【题目5解析】使用REPLACE()函数将文本中的替换为空字符串(空字符串的长度为0),替换前后的文本长度之差就是文本中*出现的次数,涉及知识点:字符串处理函数,参考代码如下:

mysql> SELECT text_id, LENGTH(text_content) - LENGTH(REPLACE(text_content, '*', '')) AS num
    -> FROM easy_original_text table1;

题目6: 找出各类别商品销量最高的商品

现有一张商品销量情况表 easy_product_sale,该表记录了不同类别商品销量的商品信息,easy_product_sale 表的数据如下表所示:

mysql> SELECT * FROM easy_product_sale;
-- product_id: 商品ID VARCHAR product_category: 商品类别 VARCHAR sale: 商品销量 INT
+------------+------------------+-------+
| product_id | product_category | sale  |
+------------+------------------+-------+
| p001       | c001             | 14600 |
| p002       | c001             | 23300 |
| p003       | c001             |  8000 |
| p004       | c002             | 40800 |
| p005       | c002             |  5300 |
| p006       | c003             | 12900 |
+------------+------------------+-------+
6 rows in set (0.00 sec)

【题目6】查询不同类别商品销量最高的商品信息。输出内容包括:product_category(商品类别)、product_id(商品ID)、sale(商品销量),结果样例如下图所示:
在这里插入图片描述
【题目6解析】使用DENSE_RANK()函数生成新的一列,即不同商品类别的销量排名(sale_rank),然后将该部分作为子查询内部,在子查询外部通过WHERE筛选出sale_rank=1的记录,即可得到不同类别商品销量最高的商品信息,参考代码如下:

mysql> SELECT temp_table.product_category, temp_table.product_id, temp_table.sale
    -> FROM (SELECT *, DENSE_RANK() OVER (PARTITION BY product_category ORDER BY sale DESC ) AS sale_rank
    ->       FROM easy_product_sale) temp_table
    -> WHERE temp_table.sale_rank = 1;

题目7: 找出每个部门薪资第二高的员工

现有一张公司员工信息表 easy_employee,easy_employee 表的数据如下表所示:

mysql> SELECT * FROM easy_employee;
-- employee_id(员工ID): VARCHAR employee_name(员工姓名): VARCHAR employee_salary(员工薪资): INT 
-- department(员工所属部门ID): VARCHAR
+-------------+---------------+-----------------+------------+
| employee_id | employee_name | employee_salary | department |
+-------------+---------------+-----------------+------------+
| a001        | Bob           |            7000 | b1         |
| a002        | Jack          |            9000 | b1         |
| a003        | Alice         |            8000 | b2         |
| a004        | Ben           |            5000 | b2         |
| a005        | Candy         |            4000 | b2         |
| a006        | Allen         |            5000 | b2         |
| a007        | Linda         |           10000 | b3         |
+-------------+---------------+-----------------+------------+
7 rows in set (0.00 sec)

还有一张部门信息表 easy_department,easy_department 表的数据如下表所示:

mysql> SELECT * FROM easy_department;
-- department_id(部门ID): VARCHAR department_name(部门名称): VARCHAR
+---------------+-----------------+
| department_id | department_name |
+---------------+-----------------+
| b1            | Sales           |
| b2            | IT              |
| b3            | Product         |
+---------------+-----------------+
3 rows in set (0.00 sec)

【题目7】查询每个部门薪资第二高的员工信息。输出内容包括:employee_id (员工ID)、employee_name(员工姓名)、employee_salary(员工薪资)、department_name(员工所属部门名称),结果样例如下图所示:
在这里插入图片描述
【题目7解析】使用窗口函数,根据部门ID分组在组内按照员工薪资降序排列并记为employee_salary_rank,使用employee_salary_rank=2作为薪资第二高的条件进行WHERE筛选,然后将该处理后的表和部门信息表进行内连接,从而把部门名称关联进来,选择需要的列,即可得到结果,参考代码如下:

mysql> SELECT a2.employee_id, a2.employee_name, a2.employee_salary, easy_department.department_name
    -> FROM (SELECT *
    ->       FROM (SELECT *, RANK() OVER (PARTITION BY department ORDER BY employee_salary DESC ) AS employee_salary_rank
    ->             FROM easy_employee) AS a1
    ->       WHERE a1.employee_salary_rank = 2) AS a2
    ->          INNER JOIN easy_department ON a2.department = easy_department.department_id;

题目8: 游戏玩家登录情况分析

现有一张游戏玩家登录情况表 easy_game_login,easy_game_login 表的数据如下表所示:

mysql> SELECT * FROM easy_game_login;
-- user_id(玩家ID): VARCHAR login_time(登录时间): VARCHAR
+---------+---------------------+
| user_id | login_time          |
+---------+---------------------+
| u001    | 2021-03-01 06:01:12 |
| u001    | 2021-03-01 07:14:20 |
| u002    | 2021-03-01 07:20:22 |
| u003    | 2021-03-01 08:22:45 |
| u001    | 2021-03-01 11:10:23 |
| u004    | 2021-03-01 12:00:10 |
| u002    | 2021-03-01 18:03:52 |
| u005    | 2021-03-01 20:10:29 |
| u003    | 2021-03-01 21:11:50 |
+---------+---------------------+
9 rows in set (0.00 sec)

【题目8-1】查询一天中多次登录游戏的玩家及其登录的次数。输出内容包括:user_id(玩家ID)、login_date(登录日期)、num(登录次数),结果样例如下图所示:
在这里插入图片描述
【题目8-1解析】对字符串格式的时间进行转换处理,使用LEFT()函数截取日期部分,并通过分组聚合使用HAVING筛选出一天内多次登录的玩家,参考代码如下:

mysql> SELECT a.user_id, a.login_date, COUNT(a.login_date) AS 'num'
    -> FROM (SELECT user_id, LEFT(login_time, 10) AS 'login_date' FROM easy_game_login)
    ->          AS a
    -> GROUP BY a.user_id, a.login_date
    -> HAVING COUNT(a.login_date) > 1;

【题目8-2】对于在一天中多次登录游戏的玩家,只查找当天最后一条记录。输出内容包括:user_id(玩家ID)、login_time(登录时间),结果样例如下图所示:
在这里插入图片描述
【题目8-2解析】在上一题找出的一天内多次登录的玩家的基础上,使用RANK()函数根据用户分组并按照时间排序选出最后一条记录。参考代码如下:

mysql> SELECT user_id, login_time
    -> FROM (SELECT e1.user_id,
    ->              e1.login_time,
    ->              RANK() OVER (PARTITION BY e1.user_id,LEFT(login_time, 10) ORDER BY login_time DESC ) AS login_time_rank
    ->       FROM easy_game_login e1
    ->                INNER JOIN (
    ->           SELECT a.user_id, a.login_date
    ->           FROM (SELECT user_id, LEFT(login_time, 10) AS 'login_date' FROM easy_game_login)
    ->                    AS a
    ->           GROUP BY a.user_id, a.login_date
    ->           HAVING COUNT(a.login_date) > 1) e2 ON e1.user_id = e2.user_id AND left(e1.login_time, 10) = e2.login_date) b
    -> WHERE b.login_time_rank = 1;

题目9: 用户首单消费金额

现有一张用户在电商网站的购物订单信息表 easy_user_order,该表记录了用户购物等相关信息,easy_user_order 表的数据如下表所示:

mysql> SELECT * FROM easy_user_order;
-- user_id(用户ID):VARCHAR payment(订单金额):INT paytime(下单时间):DATETIME
+---------+---------+---------------------+
| user_id | payment | paytime             |
+---------+---------+---------------------+
| a001    |     500 | 2021-02-01 13:25:00 |
| a001    |     800 | 2021-02-03 09:10:00 |
| b001    |     150 | 2021-02-03 15:18:00 |
| a002    |      90 | 2021-02-05 08:10:00 |
| a001    |    1050 | 2021-02-06 10:34:00 |
| b001    |     400 | 2021-02-07 18:19:00 |
+---------+---------+---------------------+
6 rows in set (0.00 sec)

【题目9】用户在电商网站的首单(下单时间最早的订单)可以反映出用户的消费能力,要求统计每个用户的首单信息。输出内容包括:user_id(用户ID)、payment(订单金额),结果样例如下图所示:
在这里插入图片描述
【题目9解析】使用DENSE_RANK()函数,根据用户ID进行分组并按照下单时间默认升序排列以得到每个用户各自的下单时间排名,在子查询外部查询并筛选出每个用户排名为1的订单信息(即首单信息)涉及知识点:子查询、窗口函数。参考代码如下:

mysql> SELECT user_id, payment
    -> FROM (SELECT user_id, payment, DENSE_RANK() OVER (PARTITION BY user_id ORDER BY paytime ASC) AS 'paytime_rank'
    ->       FROM easy_user_order)
    ->          AS a
    -> WHERE a.paytime_rank = 1;

题目10: 参与优惠活动的商品

现在有一张商品优惠活动时间表 easy_product_promotion,easy_product_promotion 表的数据如下所示:

mysql> SELECT * FROM easy_product_promotion;
-- commodity_id(商品ID):VARCHAR start_date(商品优惠活动起始日期):DATE end_date(商品优惠活动结束日期):DATE
+--------------+------------+------------+
| commodity_id | start_date | end_date   |
+--------------+------------+------------+
| a001         | 2021-01-01 | 2021-01-06 |
| a002         | 2021-01-01 | 2021-01-10 |
| a003         | 2021-01-02 | 2021-01-07 |
| a004         | 2021-01-05 | 2021-01-07 |
| b001         | 2021-01-05 | 2021-01-10 |
| b002         | 2021-01-04 | 2021-01-06 |
| c001         | 2021-01-06 | 2021-01-08 |
| c002         | 2021-01-02 | 2021-01-04 |
| c003         | 2021-01-08 | 2021-01-15 |
+--------------+------------+------------+
9 rows in set (0.00 sec)

【题目10】查询在2021年1月7日至2021年1月9日期间参与优惠活动的商品。输出内容包括:commodity_id(商品ID)结果样例如下图所示:
在这里插入图片描述
【解析10】本题适合采用图解法将所有可能的时间排列先枚举出来,再进行SQL代码编写。假设2021年1月7日为时间a,2021年1月9日为时间b,每个优惠活动的开始时间为s,结束时间为e,则所有可能的序列为“sabe”、“saeb”、“asbe”、和“aseb”。涉及知识点:复杂的时间判断。本题的SQL代码如下:

mysql> SELECT commodity_id FROM easy_product_promotion
    -> WHERE (start_date <= '2021-01-09' AND start_date >= '2021-01-07')
    -> OR (end_date <= '2021-01-09' AND end_date >='2021-01-07')
    -> OR (start_date >= '2021-01-07' AND end_date <= '2021-01-09')
    -> OR (start_date <= '2021-01-07' AND end_date >= '2021-01-09');

至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习数据库的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

    好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
 编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二十三、SQL 数据分析实战(10个简单的SQL题目) 的相关文章

  • Session_set_save_handler 未设置

    我在设置 session set save handler 时遇到问题 我将 php ini 配置为 session handler user 这个简单的测试失败了 Define custom session handler if sess
  • 使用 Athena 从 AWS WAF 日志中的规则组列表获取终止规则

    我跟着这些说明 https docs aws amazon com athena latest ug waf logs html将我的 AWS WAF 数据放入 Athena 表中 我想查询数据以查找具有 BLOCK 操作的最新请求 此查询
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • 如何在Redshift中进行分层随机样本?

    我需要对从不同类别购买商品的客户进行随机抽样 有8个类别 订单分布在其中 如果我想对已购买的客户进行随机抽样 但保持每个类别的订单比例相同 我将如何在我的 sql 代码中进行设置 下面的表格强调了这一点 它不包括客户数据 我希望我的客户列表
  • MySql 西班牙语字符数据

    我有一个包含西班牙语字符的数据库 为了填充数据库 我从字符编码 UTF 8 的客户端页面获取值 当我在 mySql 数据库中插入值时 行包含更改的数据 例如 如果我插入 M xico 数据库中的条目是 M xico 其影响是当我对指定 M
  • N 前缀和参数

    我有一些存储过程 CREATE PROC MyProc FullName NVARCHAR 200 NULL AS 当我将此过程称为exec MyProc Some english text 效果很好 但如果称其为exec MyProc 那
  • 动态表单字段验证的数据库设计

    在我的应用程序中 我允许用户创建一个包含他们想要的任何 HTML 表单字段 例如文本输入 文本区域 选择等 的表单 我想让用户能够为每个字段定义 0 个或多个累积验证规则 最多可能有 25 个不同的验证规则 我应该如何建模 这是一个潜在的解
  • 根据注册后的时间自动删除Wordpress用户?

    在使用用户访问管理器的基本 WordPress 3 1 设置中 是否可以自动删除 x 天前的用户 我没有找到此功能的插件 人们将如何实施这一举措 我是否能够使用 sql 或 php 查询设置一个 cron 作业 从而每天自动从数据库中删除
  • 如何延长SQL查询的超时时间

    这不是连接超时 因为与数据库的连接正常 问题是我调用的存储过程花费的时间超过 30 秒 并导致超时 该函数的代码如下所示 SqlDatabase db new SqlDatabase connectionManager SqlConnect
  • Oracle SQL 列转行(无需 UNPIVOT)

    我目前拥有的 Team User Apples Oranges Pears Red Adam 4 5 6 Red Avril 11 12 13 Blue David 21 22 23 需要什么 Team User Product Count
  • 在 apex 中根据 2 种不同类型的用户进行自定义身份验证

    我有一种身份验证方案 目前仅验证用户是否在一个表中 即雇主表中 现在我希望这个身份验证方案来验证用户是雇主还是雇员 并且根据他们是雇主还是雇员 它应该将他们重定向到不同的页面 首先 我如何在身份验证脚本中包含第二个表 我最大的问题是 当员工
  • 对于 XML 路径:如何将属性和值保留在同一节点中

    我在使用时遇到一些问题FOR XML PATH 我的情况是 我运行了如下脚本 属性CCY和价值AMOUNT合并到同一个节点 脚本1 SELECT USD AS Amount Ccy 123000 AS Amount Foo AS Foo F
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • Java 日期和 MySQL 时间戳时区

    我正在编辑一段代码 其基本功能是 timestamp new Date 然后坚持下去timestamp中的变量TIMESTAMPMySQL 表列 然而 通过调试我看到Date显示在正确时区的对象 GMT 1 当持久化在数据库上时 它是GMT
  • 如何在 laravel 中查询 json 列?

    我用的是 Laravel 5 6 我有一块田地 字段的数据类型为json 字段 desc 字段 的值如下所示 code 1 club CHE country ENGLAND code 2 club BAY country GERMANY c
  • MySQL 错误 1264:列的值超出范围

    As I SETMySQL 中的 cust fax 表如下所示 cust fax integer 10 NOT NULL 然后我插入这样的值 INSERT INTO database values 3172978990 但随后它说 错误 1
  • Oracle DB & SQL Developer:“错误报告:执行已完成,但有警告” - 如何*查看*该警告?

    我正在设置一个本地 Oracle 11g 数据库 我们已经运行的另一个数据库的克隆 我正在 SQL Developer 中运行一堆生成的 PL SQL 命令 我得到输出 Error starting at line x in command
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1
  • 如何增加每次 INSERT INTO 迭代的值?

    我有一个查询 如下所示 第 1 列位于 另一列是 varchar 100 INSERT INTO TABLE1 column1 column2 SELECT MAX column1 FROM TABLE1 1 anotherColumn F
  • mysql 无法向用户授予权限,出现错误:ERROR 1819 (HY000): 您的密码不满足当前策略要求

    我正在将一个新应用程序迁移到包含 MySQL 数据库的生产环境 尝试使用以下命令授予所需权限时 GRANT ALTER CREATE ON MyDB to ThisUser 我收到错误 ERROR 1819 HY000 Your passw

随机推荐

  • 数据结构——图的深度优先遍历(DFS)

    本文内图的存储方式是邻接矩阵 FS的遍历方法可以类比树的先序遍历 在实现树的先序遍历时 遍历顺序是 根 子树 下一个子树 而DFS的实现方法是优先深度 与一个树按照先序遍历的顺序相同 所以在实现DFS之前 需要先学习 寻找第一个邻接点 Fi
  • 淘宝APP用户体系运营拆解​

    目前 淘宝是目前中国最热门的电商平台 客户在淘宝网的每一步行为都会被系统后台记录下来 对于一个公司来说 如何去分析这些数据 有利于公司去读懂客户 和改善自己的产品体验 从而提高自己的销售量 创造更多的价值 互联网电商相比于传统行业 它的数据
  • TorchX 与 Ax 大整合:更高效的多目标神经架构搜索

    NAS 的目的是发现神经网络的最佳架构 Torch 与 Ax 的整合为多目标探索神经架构的研究提供辅助 本文将展示用 Multi objective Bayesian NAS 运行完全自动的神经架构搜索 Ax 中的多目标优化 Multi O
  • Amdahl定律

    计算机科学中的一个重要定律 描述 系统中某部件由于采用某种方式使系统性能改进后 整个系统系能的提高与该方式的使用频率或占总的执行时间的比例有关 主要应用 改善 系统瓶颈 性能 Amdahl定律定义了加速比 加速比 采用改进措施后性能 未采用
  • Springboot 集成 opencv 实现人脸识别功能

    目录 前言 什么是opencv 项目集成步骤 准备工作 Windows安装opencv Windows环境下集成 关键点1 引入jar包 方式一 idea添加jar 方式二 将jar上传至私服 在maven中引入 关键点2 配置人脸识别特征
  • mysql之控制流程26

    1 控制流程 mysql的控制流程和C Java一样 都不难 看几个例子然后敲几遍就熟了 流程控制结构 顺序 分支 循环 一 分支结构 1 if函数 语法 if 条件 值1 值2 功能 实现双分支 应用在begin end中或外面即可以认为
  • 一起来学nginx(一)

    一起来学nginx 一 nginx概述 nginx是一款web服务器 相当于一个软件 除了nginx还有哪些web服务器 apche openresty nginx的优点 高并发 高性能 可扩展性好 nginx是模块化的 可靠性 热部署 在
  • org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [XXX.xml]';

    tomcat启动时报错 Caused by org springframework core NestedIOException Failed to parse mapping resource file XXX xml nested ex
  • GDI+学习笔记四-双缓冲图形类

    双缓冲图形 问题 当在窗体中绘制较为复杂的图形对象时 常会出现闪烁的问题 NET Framework解决方案 提供了双缓冲功能 原理是 当启用双缓冲时 所有绘制操作首先呈现到内存缓冲区 而不是屏幕上的绘图图面 所有绘制操作完成后 内存缓冲区
  • 为了响应工信部要求,我们整理了这些网络账户注销指南

    福利 网络安全重磅福利 入门 进阶全套282G学习资源包免费分享 今年 1 月份 工信部在 回应网民问手机 App 销户的问题 时 明确表示用户有权删除在平台服务商注册的账户服务 根据 中华人民共和国网络安全法 第四十三条规定 个人发现网络
  • 智能学习

    智能学习 MATLAB实现ACO BP多变量时间序列预测 蚁群算法优化BP神经网络 目录 智能学习 MATLAB实现ACO BP多变量时间序列预测 蚁群算法优化BP神经网络 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 MAT
  • 解决内存溢出OutOfMemoryError异常

    今天启动项目时 突然了报了OOM异常 如图所示 解决办法很简单 就是把内存设置大点 主要问题是在哪里设置 1 jvm内存设置 jvm虚拟机的内存设置是在jdk jre lib amd64目录下的jvm cfg文件中设置 在最下面加上相关配置
  • Spring Boot —— Log的八个日志级别

    文章目录 Spring Boot Log的八个日志级别 前言 ALL TRACE DEBUG INFO WARN ERROR FATAL OFF Spring Boot Log的八个日志级别 前言 在项目中会出现经常使用日志的情况 而日志又
  • OAuth2 oauth_client_details表字段的详细说明

    OAuth2 oauth client details表字段的详细说明 clientdetails 妖四灵 Shuen的博客 CSDN博客
  • QT中https 访问

    QT 中支持https 在原有的http的代码基础上需要加上如下代码块 QNetworkRequest request QSslConfiguration conf QSslConfiguration defaultConfiguratio
  • WSL 使用的文件没有权限无法删除

    转载于 https www cnblogs com jffun blog p 11255096 html
  • Vite 和 Webpack 的区别

    Vite 和 Webpack 都是前端打包工具 它们的作用类似 但实现方式和使用方法有所不同 以下是它们之间的一些区别 构建速度 Vite 的构建速度比 Webpack 更快 因为 Vite 在开发环境下使用了浏览器原生的 ES 模块加载
  • 浏览器油猴插件Tampermonkey下载安装

    没有插件的浏览器 不是真正的浏览器 当我们的浏览器装上插件之后 瞬间强大了许多 下面给大家介绍一下浏览器插件神器油猴插件Tampermonkey的下载安装 油猴Tampermonkey插件下载安装方法一 直接打开油猴Tampermonkey
  • 为什么要用box-sizing: border-box?一般什么时候用?

    1 新建一个HTML文档 并定义一个块元素 CSS示例 normal width 100px height 100px background blue 步骤阅读 2 保存文件 预览效果 步骤阅读 3 再次加入一个DIV并在原有的CSS上复制
  • 二十三、SQL 数据分析实战(10个简单的SQL题目)

    文章目录 题目1 比赛名单整理 题目2 热门游戏排行 题目3 社区生鲜App覆盖分析 题目4 社区团购行为分析 题目5 统计字符出现次数 题目6 找出各类别商品销量最高的商品 题目7 找出每个部门薪资第二高的员工 题目8 游戏玩家登录情况分