Left or Inner Join and condition at subquery 你的查询目标是从 shipment 表中获取与 distance 表关联的数据,并筛选出里程数超过 3000 的记录,同时按 shipment_id 排序。这是一个典型的查询场景,可以通过以下方式改进性能或提高可读性: 原查询 SELECT *FROM shipmentLEFT JOIN distanceON (shipment.origin = distance.origin)AND (shipment.destination = distance.destination)WHERE distance.miles > 3000ORDER BY shipment_id; 方法 1:使用 INNER JOIN SELECT shipment.*, distance.milesFROM shipmentINNER JOIN distanceON shipment.origin = distance.originAND shipment.destination = distance.destinationWHERE distance.miles > 3000ORDER BY shipment.shipment_id; 适用场景: 数据量适中,无需提前过滤 distance 表。 只需简单的等值连接即可满足需求。 方法 2:将筛选条件提前(推荐) SELECT… Read More
SQL 条件 in 的优化 原查询 SELECT DISTINCT(class)FROM shipWHERE manufacturer_id IN (SELECT manufacturer_idFROM manufacturerWHERE state = ‘CA’); 改进方法 方法 1:使用 JOIN 提高可读性 通过 JOIN 重写查询,可以让逻辑更清晰: SELECT DISTINCT(ship.class)FROM shipJOIN manufacturerON ship.manufacturer_id = manufacturer.manufacturer_idWHERE manufacturer.state = ‘CA’; 优点: JOIN 的写法更直观,特别是当数据表之间关系明确时。 一些数据库管理系统(如 MySQL)对 JOIN 的性能优化可能优于子查询。 方法 2:避免 DISTINCT(如果可能) 如果确定每个 manufacturer_id 对应唯一的 class,可以省略 DISTINCT,提高查询效率: SELECT ship.classFROM shipJOIN manufacturerON ship.manufacturer_id = manufacturer.manufacturer_idWHERE manufacturer.state = ‘CA’;… Read More
Generative AI Generative AI, or Generative Artificial Intelligence, is a type of AI technology that can create new content by learning from and mimicking large amounts of data. Unlike traditional AI, which primarily focuses on analyzing and understanding data, generative AI can produce new text, images, audio, video, and more. Key Concepts and Applications of Generative AI… Read More
「どうして彼女がこのポストにあまりふさわしくないなどと決めてかかるんだい?」「それは彼女が厄介な状況を扱うのに慣れていないからだよ」这个句子里的[決めてかかるんだい],请教如何理解? ChatGPT: 「決めてかかる」(きめてかかる) は、「先入観を持って何かを判断する」という意味の表現です。この表現を理解するために、以下のポイントを考慮してください: 決める (きめる): 決断や判断を行うこと。 かかる: ここでは「取りかかる」という意味で、何かを始めることを指します。 「決めてかかる」全体としては、「最初から決めつけて行動する」という意味になります。 この文脈では、「決めてかかるんだい」は疑問形で、「どうして最初からそう決めつけるんだ?」という意味になります。「んだい」は「のだ」の口語表現で、疑問や反論のニュアンスを強調します。 従って、文章全体の意味は次のようになります: 「どうして彼女がこのポストにあまりふさわしくないなどと決めてかかるんだい?」 「どうして最初から彼女がこのポストにふさわしくないと決めつけるんだ?」 「それは彼女が厄介な状況を扱うのに慣れていないからだよ」 「それは彼女が厄介な状況に対処する経験がないからだよ」 要するに、この会話は、ある人物が他の人物に対して、彼女がそのポジションに適していないと決めつける理由を問い、その理由が彼女の経験不足にあることを説明しています。 句子英文: “Why do you assume that she is not quite fit for this post?” “Because I don’t think she is used to handling awkward situations.”… Read More
Formatting Numbers in Excel VBA IN THIS ARTICLE Formatting Numbers in Excel VBA How to Use the Format Function in VBA Creating a Format String Using a Format String for Alignment Using Literal Characters Within the Format String Use of Commas in a Format String Creating Conditional Formatting within the Format String Using Fractions in Formatting Strings Date and Time… Read More
成长的模式:如何从毕业生到技术专家? 过去的一个月里,在帮助其他部门进行毕业生培训。从名称上说是培训,但是实际上则是训战结合。不想一下子给太多,这篇文章会给的建议是: 寻找持续成长的动机 塑造整洁的编码习惯 建立定位问题的方式 学习既有的模式 频繁性自我总结 只凭这五点来说,与《福格行为模型》所定义的三要素也是颇为相似的: 要素1 动机(Motivation):找到实现愿望的黄金行为 要素2 能力:让行为简单到随时顺便都能做 要素3 提示:善用锚点时刻让行为立刻发生 如果再简化来说,也可以采用和我一样的模式,通过基本简单的行为:每天写代码,每周做总结(通过文章)。 再定义专家再回到我们这篇文章的主题里,如何从毕业生到一个技术专家?专家是基于研究、经验或职业并在特定研究领域具有广泛知识或能力的人。这样的定义是如此的简洁,以至于一个工作经验丰富的人都可以称上得是专家。在这种定义之下,一个 996 的程序员的开发经验,可谓不比一个 965 的人差。 于是乎,我还更喜欢,我在在那篇《专家 x 抽象 x 类比》里,我们也定义了专家应该做点什么? 所谓的专家嘛,就是在擅长的 “领域” 里,构建了具有范畴化(归类)的概念空间,并可以通过类比灵活地完善自己的概念库。 在这个定义之下,我们行业的技术专家便是指,在软件开发领域,具备丰富的软件开发相关的知识(即概念)或者是经验。拥有自己的软件开发相关的知识体系(概念库),并且能持续不断地完善。比如说,你是个后端专家,那么你能理解后端开发中的大部分概念,以及这些概念之间的关系。诸如于: Spring Boot 是一个可以用于帮助我们开发微服务的框架;微服务是一种基于服务的分布式架构风格/架构模式;架构模式是模式的一种,其中采用最广泛的是设计模式;分布式架构通过远程协议连接多个部署单元。 基于 Spring Boot 构建的应用可以是一个部署单元,通过持续集成构建,并持续部署到容器化平台上。 能知晓整个体系的相关概念,并清晰地知道概念之间的关系,再有一定的经验,我们就是入门级 “专家”。而后,一旦来了一些新的概念,我们还需要能将它们纳入到我们的体系中。诸如于最近在后端开发领域又重新火起来的 Cells-based architecture,它也是一种架构风格,同等于微服务架构。我们所能构建的是一个领域的思维框架,它可以帮助我们对所有的知识分门别类。 寻找持续成长的动机首先,我们要思考的第一个问题是,为什么我们要成为一个技术专家? 不管动机水准的高低为何,人们若能维持一定的动机水准,则不但能维持追求该目标的行为,也能维持心理上对该目标的渴望,直到人们知觉到该目标达成为止。—— 维基百科 六年前,我参加过一个 Management 3.0(有兴趣的读者,也可以翻看《管理3.0:培养和提升敏捷领导力》)。虽然,这个培训确信了我不适合这个无聊的工作。但是,培训/书中介绍了一个 CHAMPFROGS 模型,它可以用来帮助我们寻找内在的动机。它由十种激励因素(好奇心,荣誉,接受,精通,力量,自由,亲和力,秩序,目标,地位),包括内在动机、外在动机或两者兼有的因素组成。(有兴趣的读者,可以翻看:https://www.infoq.com/news/2013/11/intrinsic-motivators/ ) 你也可以尝试一下,从上面的十个动机,按一、二、三的顺序,挑选出最与你匹配的动机。进而,你就可以发现你成长的动力在哪里。我记得多年以前,我的主要动机是好奇心、自由,其中有一个我已经忘了,估计也不重要了。 总有人会说:“hi,我成为技术专家的专家是赚更多的钱”。那么,问题来说,你如何定义多和少,怎么去衡量它们呢?对于打工人而言,你赚的钱多数时候,并不是靠你的能力决定的,而是你的行业决定的。所以,久而久之,将赚钱作为成长的目标,你会失去这种动力。因为,你的技术成长并不会从收入上得到回报。 塑造整洁的编码习惯整洁的代码意味着很多事情,你可以从《代码整洁之道》得到更多相关的知识。作为一个刚入行的程序员,在代码上充斥着大量的问题,诸如于: 无用的注释 注释的代码 混乱的代码风格 缺乏设计/重构的代码… Read More
Microsoft Access Performance Tips to Speed up Your Access Databases Over 100 Tips for Faster Microsoft Access Databases This paper outlines specific performance tips you can use to improve the speed of your Microsoft Access applications. These tips apply to all versions of Access including Access 2016, 2013, 2010, 2007, 2003, 2002, 2000, and 97. Some of the tips may contradict each other but they… Read More
How to shut down a custom Access application remotely Summary Sometimes, you may have to perform maintenance tasks on a Microsoft Access database, such as compacting or repairing, making backup copies, or making design modifications. Many of these operations require that all users exit the database. However, there is no built in way to force users to quit Microsoft Access. And it is not… Read More
7 Ways To Do Sequential Numbering in Microsoft Access Occasionally we come across project requirements that include the ability to do sequential numbering in Access on a set of data. We cannot just use the auto-number data type because there is no promise of sequentiality but only uniqueness. In other words, if someone creates a record then later deletes it, there will be a… Read More
How to calculate time in Excel – time difference, adding / subtracting times This tutorial focuses on various ways to calculate times in Excel. You will find a few useful formulas to add and subtract times, calculate time difference, or elapsed time, and more. In the last week’s article, we had a close look at the specificities of Excel time format and capabilities of basic time functions. Today, we are… Read More