更新 readme 文章链接

This commit is contained in:
alex 2021-06-22 13:41:07 +08:00
parent 794903370d
commit 1ed71953d0
5 changed files with 568 additions and 291 deletions

28
.idea/codeStyles/Project.xml generated Normal file
View File

@ -0,0 +1,28 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<DBN-PSQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false" />
</DBN-PSQL>
<DBN-SQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false">
<option name="STATEMENT_SPACING" value="one_line" />
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
</formatting-settings>
</DBN-SQL>
</code_scheme>
</component>

468
.idea/dbnavigator.xml generated Normal file
View File

@ -0,0 +1,468 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DataExportManager">
<export-instructions>
<create-header value="true" />
<friendly-headers value="false" />
<quote-values-containing-separator value="true" />
<quote-all-values value="false" />
<value-separator value="" />
<file-name value="" />
<file-location value="" />
<scope value="GLOBAL" />
<destination value="FILE" />
<format value="EXCEL" />
<charset value="GBK" />
</export-instructions>
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.EditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.ExecutionManager">
<retain-sticky-names value="false" />
</component>
<component name="DBNavigator.Project.MethodExecutionManager">
<method-browser />
<execution-history>
<group-entries value="true" />
<execution-inputs />
</execution-history>
<argument-values-cache />
</component>
<component name="DBNavigator.Project.ObjectDependencyManager">
<last-used-dependency-type value="INCOMING" />
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
<recently-used-interfaces />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<tracking-columns>
<columnNames value="" />
<visible value="true" />
<editable value="false" />
</tracking-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="JSP" enabled="true" />
<content-type name="JSPx" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="FTL" enabled="true" />
<content-type name="TML" enabled="true" />
<content-type name="GSP" enabled="true" />
<content-type name="ASP" enabled="true" />
<content-type name="VTL" enabled="true" />
<content-type name="AIDL" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Flex" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
<component name="DBNavigator.Project.StatementExecutionManager">
<execution-variables />
</component>
</project>

52
.idea/workspace.xml generated
View File

@ -22,6 +22,7 @@
<list default="true" id="1f4b9d3c-5ec4-4f92-99a5-47a66eed35c3" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/note/面试杀招/3道常见的SQL笔试题你要不要来试试.md" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -62,7 +63,7 @@
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/note/hadoop" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
@ -91,6 +92,19 @@
<recent name="F:\github\TheKingOfBigData\note" />
</key>
</component>
<component name="RunManager">
<configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
@ -103,7 +117,7 @@
</list>
</option>
</component>
<component name="SpellCheckerSettings" BundledDictionaries="0" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" Dictionaries="0" CorrectionsLimit="5" DefaultDictionary="application-level" UseSingleDictionary="true" />
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration />
</component>
@ -164,14 +178,8 @@
<workItem from="1620352892843" duration="2023000" />
<workItem from="1620439204571" duration="254000" />
<workItem from="1622041556065" duration="2447000" />
<workItem from="1622729702567" duration="630000" />
</task>
<task id="LOCAL-00051" summary="更新readme">
<created>1613633732020</created>
<option name="number" value="00051" />
<option name="presentableId" value="LOCAL-00051" />
<option name="project" value="LOCAL" />
<updated>1613633732020</updated>
<workItem from="1622729702567" duration="1611000" />
<workItem from="1624294600914" duration="1670000" />
</task>
<task id="LOCAL-00052" summary="更新readme">
<created>1613633826745</created>
@ -509,24 +517,30 @@
<option name="project" value="LOCAL" />
<updated>1622043594154</updated>
</task>
<option name="localTasksCounter" value="100" />
<task id="LOCAL-00100" summary="更新 readme 文章链接">
<created>1622732272559</created>
<option name="number" value="00100" />
<option name="presentableId" value="LOCAL-00100" />
<option name="project" value="LOCAL" />
<updated>1622732272559</updated>
</task>
<option name="localTasksCounter" value="101" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="COLUMN_ORDER" />
</State>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
@ -562,11 +576,11 @@
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="506" y="327" key="#com.intellij.framework.addSupport.AddSupportForSingleFrameworkDialog/0.0.1536.824/1920.0.1536.824@0.0.1536.824" timestamp="1614136268236" />
<state x="400" y="0" key="CommitChangelistDialog2" timestamp="1622043592049">
<state x="400" y="0" key="CommitChangelistDialog2" timestamp="1622732271192">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="367" y="0" key="CommitChangelistDialog2/0.0.1536.824/1920.0.1536.824@0.0.1536.824" timestamp="1620353651884" />
<state x="400" y="0" key="CommitChangelistDialog2/0.0.1536.824@0.0.1536.824" timestamp="1622043592049" />
<state x="400" y="0" key="CommitChangelistDialog2/0.0.1536.824@0.0.1536.824" timestamp="1622732271192" />
<state x="549" y="167" key="FileChooserDialogImpl" timestamp="1617869639968">
<screen x="0" y="0" width="1536" height="824" />
</state>
@ -575,11 +589,11 @@
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="270" y="57" key="SettingsEditor/0.0.1536.824@0.0.1536.824" timestamp="1615778393772" />
<state x="361" y="145" key="Vcs.Push.Dialog.v2" timestamp="1622732260398">
<state x="361" y="145" key="Vcs.Push.Dialog.v2" timestamp="1622732273689">
<screen x="0" y="0" width="1536" height="824" />
</state>
<state x="361" y="145" key="Vcs.Push.Dialog.v2/0.0.1536.824/1920.0.1536.824@0.0.1536.824" timestamp="1620353654761" />
<state x="361" y="145" key="Vcs.Push.Dialog.v2/0.0.1536.824@0.0.1536.824" timestamp="1622732260398" />
<state x="361" y="145" key="Vcs.Push.Dialog.v2/0.0.1536.824@0.0.1536.824" timestamp="1622732273689" />
<state x="494" y="155" key="com.intellij.ide.util.TipDialog" timestamp="1620439204712">
<screen x="0" y="0" width="1536" height="824" />
</state>

View File

@ -8,7 +8,7 @@
<p align="center">
<a href="https://github.com/BigDataScholar/TheKingOfBigData" target="_blank">
<img src="https://img-blog.csdnimg.cn/20210210005107102.png" width=""/>
</a>
@ -45,26 +45,27 @@
<div> <h3 align="center">King</h3> </div>
## 文章目录
> 以下列出的是作者对原创或非原创的一些文章和一些学习资源做了一个汇总会持续更新如果帮到了您请点个star支持一下谢谢
### Linux
### 🍧Linux
1. [[娱乐]14个简单、有趣、好玩的Linux命令](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/linux/%5B%E5%A8%B1%E4%B9%90%5D14%E4%B8%AA%E7%AE%80%E5%8D%95%E3%80%81%E6%9C%89%E8%B6%A3%E3%80%81%E5%A5%BD%E7%8E%A9%E7%9A%84Linux%E5%91%BD%E4%BB%A4.md)
### Shell
### 🍨Shell
1. [Shell进阶必会的几个工具你都掌握了吗(附真实企业面试题)](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/shell/Shell%E8%BF%9B%E9%98%B6%E5%BF%85%E4%BC%9A%E7%9A%84%E5%87%A0%E4%B8%AA%E5%B7%A5%E5%85%B7%EF%BC%8C%E4%BD%A0%E9%83%BD%E6%8E%8C%E6%8F%A1%E4%BA%86%E5%90%97(%E9%99%84%E7%9C%9F%E5%AE%9E%E4%BC%81%E4%B8%9A%E9%9D%A2%E8%AF%95%E9%A2%98).md)
2. [零基础小白如何入门Shell快来看看(收藏)这篇大总结](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/shell/%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%B0%8F%E7%99%BD%E5%A6%82%E4%BD%95%E5%85%A5%E9%97%A8Shell%EF%BC%8C%E5%BF%AB%E6%9D%A5%E7%9C%8B%E7%9C%8B(%E6%94%B6%E8%97%8F)%E8%BF%99%E7%AF%87%E5%A4%A7%E6%80%BB%E7%BB%93.md)
### Hadoop
### 🍩Hadoop
1. [你有想过如何用Hadoop实现"倒排索引"](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hadoop/%E4%BD%A0%E6%9C%89%E6%83%B3%E8%BF%87%EF%BC%8C%E5%A6%82%E4%BD%95%E7%94%A8Hadoop%E5%AE%9E%E7%8E%B0%5B%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95%5D.md)
2. [[干货]HDFS常用的40个命令](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hadoop/%5B%E5%B9%B2%E8%B4%A7%5DHDFS%E5%B8%B8%E7%94%A8%E7%9A%8440%E4%B8%AA%E5%91%BD%E4%BB%A4.md)
@ -74,15 +75,15 @@
5. [[干货]HDFS是怎么做文件管理和容错的](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hadoop/%5B%E5%B9%B2%E8%B4%A7%5DHDFS%E6%98%AF%E6%80%8E%E4%B9%88%E5%81%9A%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%92%8C%E5%AE%B9%E9%94%99%E7%9A%84%EF%BC%9F.md)
6. [MapReduce 的核心知识点,你都 get 到了吗 ?(干货文章,建议收藏!)](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hadoop/MapReduce%20%E7%9A%84%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9%EF%BC%8C%E4%BD%A0%E9%83%BD%20get%20%E5%88%B0%E4%BA%86%E5%90%97%20_%EF%BC%88%E5%B9%B2%E8%B4%A7%E6%96%87%E7%AB%A0%EF%BC%8C%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F%EF%BC%81%EF%BC%89.md)
### Hive
### 🍰Hive
1. [Hive查询的18种方式你都学会了吗](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hive/Hive%E6%9F%A5%E8%AF%A2%E7%9A%8418%E7%A7%8D%E6%96%B9%E5%BC%8F%EF%BC%8C%E4%BD%A0%E9%83%BD%E5%AD%A6%E4%BC%9A%E4%BA%86%E5%90%97.md)
2. [[干货]关于Hive命令的7个小技巧](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/hive/%5B%E5%B9%B2%E8%B4%A7%5D%E5%85%B3%E4%BA%8EHive%E5%91%BD%E4%BB%A4%E7%9A%847%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7.md)
3. [硬刚Hive | 4万字基础调优面试小总结](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496350&idx=1&sn=1388a9267dd14362b36f8c1c9994204f&chksm=e8dbaa4cdfac235a261e9ed620879a0e703c5b3eac6e7a0b1b6f3129f3378fe208491764f25e&token=1693301572&lang=zh_CN#rd)
4. [教你用Hive/Spark实现图谱计算](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496298&idx=1&sn=ed17a5d93b096405c386cd3faf5854a7&chksm=e8dbaab8dfac23ae13ce6293d3f0837f519bb4595ac0a746481da36797d197debebdabed4248&token=1693301572&lang=zh_CN#rd)
5. [Hive窗口函数保姆级教程](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247497058&idx=1&sn=d63d260c0c5d8172530843f9542fe70d&chksm=c2d7f2ebf5a07bfd0a6a5c5decf9d2efa32e6d345699832a4db8cf101ae89dc24b6e0894dd27&token=2075738930&lang=zh_CN#rd)
### Spark
### 🧁Spark
1. [关于Spark的面试题你应该知道这些](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/spark/%E5%85%B3%E4%BA%8ESpark%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%8C%E4%BD%A0%E5%BA%94%E8%AF%A5%E7%9F%A5%E9%81%93%E8%BF%99%E4%BA%9B%EF%BC%81.md)
2. [Spark基础能力测试题](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/spark/Spark%E5%9F%BA%E7%A1%80%E8%83%BD%E5%8A%9B%E6%B5%8B%E8%AF%95%E9%A2%98.md)
3. [SparkSQL基础测试题](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/spark/SparkSQL%E5%9F%BA%E7%A1%80%E6%B5%8B%E8%AF%95%E9%A2%98.md)
@ -92,13 +93,15 @@
### Flink
### 🍭 Flink
1. [ 五千字长文带你快速入门FlinkSQL](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/flink/%5B%E5%B9%B2%E8%B4%A7%5D%20%E4%BA%94%E5%8D%83%E5%AD%97%E9%95%BF%E6%96%87%E5%B8%A6%E4%BD%A0%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8FlinkSQL.md)
2. [FlinkSQL流处理中的特殊概念](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/flink/FlinkSQL%E6%B5%81%E5%A4%84%E7%90%86%E4%B8%AD%E7%9A%84%E7%89%B9%E6%AE%8A%E6%A6%82%E5%BF%B5.md)
3. [干货-13道精选Flink面试题](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/flink/%E5%B9%B2%E8%B4%A7-13%E9%81%93%E7%B2%BE%E9%80%89Flink%E9%9D%A2%E8%AF%95%E9%A2%98.md)
4. [基于Flink CDC打通数据实时入湖](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496796&idx=1&sn=32441f1cc9a96c6ee9aeea9f6532ac6e&chksm=c2d7f3d5f5a07ac3b49bd772d83ae6217d8957f0b98ef26602a1a6b08d463819bbe9b560c5d9&token=2075738930&lang=zh_CN#rd)
5. [基于 Flink SQL 构建流批一体的 ETL 数据集成](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492119&idx=1&sn=f382fb2cb02079319835d432baaecb2b&chksm=e8dbbac5dfac33d363198239e125113be797842abcd33841ae71d1bb366368e0a636b729e1d3&token=1272273277&lang=zh_CN#rd)
### 其他组件
### 🍫其他组件
1. [[硬核]Sqoop入门指南](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E5%85%B6%E4%BB%96%E7%BB%84%E4%BB%B6/%5B%E7%A1%AC%E6%A0%B8%5DSqoop%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97.md)
2. [从 0 到 1 学习 Presto这一篇就够了](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E5%85%B6%E4%BB%96%E7%BB%84%E4%BB%B6/%E4%BB%8E%200%20%E5%88%B0%201%20%E5%AD%A6%E4%B9%A0%20Presto%EF%BC%8C%E8%BF%99%E4%B8%80%E7%AF%87%E5%B0%B1%E5%A4%9F%E4%BA%86.md)
@ -111,7 +114,7 @@
### [大数据实战]电商用户行为数据分析
### 🍷[大数据实战]电商用户行为数据分析
1. [基于 flink 的电商用户行为数据分析【1】项目整体介绍](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/%E5%9F%BA%E4%BA%8Eflink%E7%9A%84%E7%94%B5%E5%95%86%E7%94%A8%E6%88%B7%E8%A1%8C%E4%B8%BA%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E3%80%901%E3%80%91%20%E9%A1%B9%E7%9B%AE%E6%95%B4%E4%BD%93%E4%BB%8B%E7%BB%8D.md)
@ -134,7 +137,7 @@
### [精品分享]用户画像方法论与工程化解决方案
### 🧊[精品分享]用户画像方法论与工程化解决方案
1. [[用户画像]开发性能调优](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/%5B%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F%5D%E5%BC%80%E5%8F%91%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98.md)
@ -149,29 +152,31 @@
6. [[用户画像]标签数据存储之Elasticsearch真实应用](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/%5B%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F%5D%E6%A0%87%E7%AD%BE%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8%E4%B9%8BElasticsearch%E7%9C%9F%E5%AE%9E%E5%BA%94%E7%94%A8.md)
### 面试杀招
### 🍸 面试杀招
1. [Hive高频考点就怕你都会](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B/%5B%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B%5DHive%E9%AB%98%E9%A2%91%E8%80%83%E7%82%B9%EF%BC%8C%E5%B0%B1%E6%80%95%E4%BD%A0%E9%83%BD%E4%BC%9A.md)
2. [Hadoop高频考点正在刷新你的认知](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B/%5B%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B%5DHadoop%E9%AB%98%E9%A2%91%E8%80%83%E7%82%B9%EF%BC%8C%E6%AD%A3%E5%9C%A8%E5%88%B7%E6%96%B0%E4%BD%A0%E7%9A%84%E8%AE%A4%E7%9F%A5.md)
3. [Spark高频考点必知必会](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B/%5B%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B%5DSpark%E9%AB%98%E9%A2%91%E8%80%83%E7%82%B9%EF%BC%8C%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A.md)
4. [3道常见的SQL笔试题你要不要来试试](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B/3%E9%81%93%E5%B8%B8%E8%A7%81%E7%9A%84SQL%E7%AC%94%E8%AF%95%E9%A2%98%EF%BC%8C%E4%BD%A0%E8%A6%81%E4%B8%8D%E8%A6%81%E6%9D%A5%E8%AF%95%E8%AF%95.md)
4. [面试刷题常见的3种类型的SQL必知必会](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247497128&idx=1&sn=5d39b57ec74b94e06834b8f5b95c7a46&chksm=c2d7f221f5a07b375e158b4b6df7f84668052ca19aab2dbb89df517e6824f39fb0d30992159a&token=2075738930&lang=zh_CN#rd)
5. [系列文章一精选大数据面试真题10道混合型-附答案详细解析](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247490454&idx=1&sn=df5243b8ff5610b2db4c286b99bcf70b&chksm=e8d84344dfafca529409da02e146c11ad06796eee7bdfba600277614dc298827faeb73b3bb2b&token=1819206302&lang=zh_CN#rd)
6. [面试系列二精选大数据面试真题JVM专项-附答案详细解析](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247490676&idx=1&sn=867b21a21cf74ef1ef17cdc96440da86&chksm=e8d844a6dfafcdb0ab18b4f8fd79421986e35a86de931b3d4604d7a2b15a970e8a7d7eb5b200&token=1819206302&lang=zh_CN#rd)
7. [看完了108份面试题我为你总结出了这 10 个【Hive】高频考点建议收藏](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E9%9D%A2%E8%AF%95%E6%9D%80%E6%8B%9B/%E7%9C%8B%E5%AE%8C%E4%BA%86108%E4%BB%BD%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%8C%E6%88%91%E4%B8%BA%E4%BD%A0%E6%80%BB%E7%BB%93%E5%87%BA%E4%BA%86%E8%BF%99%2010%20%E4%B8%AA%E3%80%90Hive%E3%80%91%E9%AB%98%E9%A2%91%E8%80%83%E7%82%B9%EF%BC%88%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F%EF%BC%89.md)
### 程序人生
### 🍵 程序人生
1. [程序人生/简单谈谈最近在看的几本书「数据中台,用户画像」](https://github.com/BigDataScholar/TheKingOfBigData/tree/master/note/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F)
2. [简单谈谈最近在看的几本书「数据中台,用户画像」](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/%E7%AE%80%E5%8D%95%E8%B0%88%E8%B0%88%E6%9C%80%E8%BF%91%E5%9C%A8%E7%9C%8B%E7%9A%84%E5%87%A0%E6%9C%AC%E4%B9%A6%E3%80%8C%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0%EF%BC%8C%E7%94%A8%E6%88%B7%E7%94%BB%E5%83%8F%E3%80%8D.md)
3. [[云上有为 · 未来无界] 2021上海站 ECUG Con 第一天回忆录](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/%5B%E4%BA%91%E4%B8%8A%E6%9C%89%E4%B8%BA%20%C2%B7%20%E6%9C%AA%E6%9D%A5%E6%97%A0%E7%95%8C%5D%202021%E4%B8%8A%E6%B5%B7%E7%AB%99%20ECUG%20Con%20%E7%AC%AC%E4%B8%80%E5%A4%A9%E5%9B%9E%E5%BF%86%E5%BD%95.md)
4. [00后程序员摸爬滚打近一年为学弟学妹们总结出了以下 7 条人生建议(建议收藏)](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/00%E5%90%8E%E7%A8%8B%E5%BA%8F%E5%91%98%E6%91%B8%E7%88%AC%E6%BB%9A%E6%89%93%E8%BF%91%E4%B8%80%E5%B9%B4%EF%BC%8C%E4%B8%BA%E5%AD%A6%E5%BC%9F%E5%AD%A6%E5%A6%B9%E4%BB%AC%E6%80%BB%E7%BB%93%E5%87%BA%E4%BA%86%E4%BB%A5%E4%B8%8B%207%20%E6%9D%A1%E4%BA%BA%E7%94%9F%E5%BB%BA%E8%AE%AE%EF%BC%88%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F%EF%BC%89.md)
5. [上海有哪些牛逼的互联网公司?](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496844&idx=1&sn=2113ff8b8d39b9eb7bd017e464865a2f&chksm=c2d7f305f5a07a1345db09be91ef2a4f16a6714bd052860e8e06bc886960a490aefd7116f303&token=2075738930&lang=zh_CN#rd)
6. [校招进腾讯,二本也可以?](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496426&idx=1&sn=b9de117476d564271fb763dc65bcd896&chksm=c2d7f563f5a07c75a303b6f4491be9dd455a3e4a43a941e31eedb8576f1fd9388c5b7434b440&token=2075738930&lang=zh_CN#rd)
### 中间件
### 🥥 中间件
1. [从 0 到 1 学习 elasticsearch ,这一篇就够了!(建议收藏)](https://github.com/BigDataScholar/TheKingOfBigData/blob/master/note/%E4%B8%AD%E9%97%B4%E4%BB%B6/%E4%BB%8E%200%20%E5%88%B0%201%20%E5%AD%A6%E4%B9%A0%20elasticsearch%20%EF%BC%8C%E8%BF%99%E4%B8%80%E7%AF%87%E5%B0%B1%E5%A4%9F%E4%BA%86%EF%BC%81(%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F).md)
2. [2w字一文干掉 Kafka](https://mp.weixin.qq.com/s/7MLiPppz_euiCslPpsnz6A)
3. [大白话认识 Kafka 背后优秀的架构设计](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496279&idx=1&sn=37467e6ea62d6c9ab9575403da94eee9&chksm=e8dbaa85dfac23935fc2a7b86936b0018d864c069aee7b77643936166986cf6021a8fa0f8e85&token=1693301572&lang=zh_CN#rd)
### 其他技术
### 🍟 其他技术
1. [零基础带你硬核了解并上手“Ansible“!](https://alice.blog.csdn.net/article/details/109771486)
2. [Ansible进阶学习之Playbooks(剧本)的理解使用](https://alice.blog.csdn.net/article/details/109844469)
@ -183,7 +188,7 @@
8. [零基础学Docker【4】 | 一文带你理解Docker镜像原理之联合文件系统](https://alice.blog.csdn.net/article/details/109638410)
9. [万字长文带你快速了解并上手Testcontainers](https://alice.blog.csdn.net/article/details/111790143)
### 企业级真实应用
### 🥗 企业级真实应用
1. [腾讯基于 Flink SQL 的功能扩展与深度优化实践](https://mp.weixin.qq.com/s/vgpeZKFR13sSPwvtPvaDNA)
2. [网易云音乐基于 Flink + Kafka 的实时数仓建设实践](https://mp.weixin.qq.com/s/JcuW0_YDQj0rlgPMmuwzYQ)
3. [阿里巴巴为什么能抗住90秒100亿--服务端高并发分布式架构演进之路](https://mp.weixin.qq.com/s/fyTqrx8aj813KHdPAiYpXA)
@ -194,31 +199,36 @@
8. [Apache Doris 在京东广告的应用实践 ](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247493960&idx=1&sn=ccfa5073bf7d47eb85cfe9cf2475eecf&chksm=e8dbb19adfac388c36484241ddf78236f8af533ad159870be36c56cb3f528e35529cb28d55d3&token=1073059733&lang=zh_CN#rd)
9. [猿辅导 x DorisDB构建统一OLAP平台全面升级数据分析能力](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496016&idx=2&sn=ffe549dccf3c72376478a29ba35359cf&chksm=e8dba982dfac20949ebc4acb759f30284b7a9e6f5eb3eed8c0f4e246d3fe4207c8aa3fb15788&token=1693301572&lang=zh_CN#rd)
### 超强总结
### 🥤 超强总结
1. [万字详解整个数据仓库建设体系](https://mp.weixin.qq.com/s/EHzya2zscZTnRe0GCVK4cA)
2. [Redis最佳实践7个维度+43条使用规范带你彻底玩转Redis | 附实践清单](https://mp.weixin.qq.com/s/WXoyhxF057VcJtncIYzECw)
3. [架构师 | 数据仓库建设灵魂10问](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492069&idx=1&sn=f68def66bfd0354cd2adbbaf14da558e&chksm=e8dbb937dfac3021beb27373dc52d73b05ff0b2e0a1ea831829f608c4b03811a4d5aab23722a&token=1272273277&lang=zh_CN#rd)
4. [基于 Flink SQL 构建流批一体的 ETL 数据集成](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492119&idx=1&sn=f382fb2cb02079319835d432baaecb2b&chksm=e8dbbac5dfac33d363198239e125113be797842abcd33841ae71d1bb366368e0a636b729e1d3&token=1272273277&lang=zh_CN#rd)
5. [推荐一些热门的DevOps工具](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492239&idx=1&sn=47a8d70793326a3a97f61ccb9a4d181e&chksm=e8dbba5ddfac334b53b6c20ffcde7322b8c61106e0c1a2120604731fe0aadefe4ee17386aca6&token=1272273277&lang=zh_CN#rd)
6. [使用 Flink 前需要知道的 10 个『陷阱』](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492303&idx=1&sn=3c86c64c9de9ef72453efac1740a642a&chksm=e8dbba1ddfac330bbb898a54485a3e7bab7366fd884beab134402fc4d9822258e904f2069afa&token=1272273277&lang=zh_CN#rd)
7. [干货 | 实时数仓中的消息队列技术深度对比](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247494119&idx=1&sn=22486e3a4c85063f6e261a91a26226ca&chksm=e8dbb135dfac3823c6c81cf7c68179f6a2907cf10a4c9e002d67b8fb39cc00a3213db891f998&token=2100073657&lang=zh_CN#rd)
8. [面试必备 | 10道海量数据处理你会几道](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247494221&idx=1&sn=05fffc2c0353007f1c76db578fc84a69&chksm=e8dbb29fdfac3b897fd3316ccde51a49b108a32a138e7c0ba054943fe2849c34717f531020e1&token=2100073657&lang=zh_CN#rd)
9. [工作四年分享50个优化代码的妙招](https://mp.weixin.qq.com/s/AKVdTdfbClN_bx4wk54NhA)
10. [使用Redis你必须知道的21个注意要点](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247495966&idx=1&sn=4e005615a68d1f3a81f19dbfc9da094e&chksm=e8dba9ccdfac20da6b2d78aa4eca9700c107797203368f8cbc9aa62a148549c71ecd1e8a1f24&token=1693301572&lang=zh_CN#rd)
4. [推荐一些热门的DevOps工具](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492239&idx=1&sn=47a8d70793326a3a97f61ccb9a4d181e&chksm=e8dbba5ddfac334b53b6c20ffcde7322b8c61106e0c1a2120604731fe0aadefe4ee17386aca6&token=1272273277&lang=zh_CN#rd)
5. [使用 Flink 前需要知道的 10 个『陷阱』](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492303&idx=1&sn=3c86c64c9de9ef72453efac1740a642a&chksm=e8dbba1ddfac330bbb898a54485a3e7bab7366fd884beab134402fc4d9822258e904f2069afa&token=1272273277&lang=zh_CN#rd)
6. [干货 | 实时数仓中的消息队列技术深度对比](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247494119&idx=1&sn=22486e3a4c85063f6e261a91a26226ca&chksm=e8dbb135dfac3823c6c81cf7c68179f6a2907cf10a4c9e002d67b8fb39cc00a3213db891f998&token=2100073657&lang=zh_CN#rd)
7. [面试必备 | 10道海量数据处理你会几道](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247494221&idx=1&sn=05fffc2c0353007f1c76db578fc84a69&chksm=e8dbb29fdfac3b897fd3316ccde51a49b108a32a138e7c0ba054943fe2849c34717f531020e1&token=2100073657&lang=zh_CN#rd)
8. [工作四年分享50个优化代码的妙招](https://mp.weixin.qq.com/s/AKVdTdfbClN_bx4wk54NhA)
9. [使用Redis你必须知道的21个注意要点](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247495966&idx=1&sn=4e005615a68d1f3a81f19dbfc9da094e&chksm=e8dba9ccdfac20da6b2d78aa4eca9700c107797203368f8cbc9aa62a148549c71ecd1e8a1f24&token=1693301572&lang=zh_CN#rd)
10. [六千字总结:大数据框架(分区,分桶,分片)](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247497071&idx=1&sn=0ef89ef6f5fae4b946affec996b2c3e1&chksm=c2d7f2e6f5a07bf06e5f3bd183fec61692328218e765cdc2d4236ef107f84d00b7e449367bd9&token=2075738930&lang=zh_CN#rd)
11. [有了这 27 个Linux 技巧,让你工作效率翻倍!](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496830&idx=1&sn=0ce5729efc6e0120cc6f3fd8bb84d348&chksm=c2d7f3f7f5a07ae1fcc44171c1e1e1fffcd9ef4a75c34a2e3bb040eb49315436cc8e8729aaf3&token=2075738930&lang=zh_CN#rd)
12. [超牛逼100 个开箱即用的 Shell 脚本,拿好了~](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496656&idx=1&sn=876c92caa1f470e3bd8f0652e36b7157&chksm=c2d7f459f5a07d4fd22b2d6a81dd1aa4cdfb26261b7e0870d15580391099880658aafe8a63e6&token=2075738930&lang=zh_CN#rd)
13. [互联网大厂的秋招干货总结 | 建议收藏](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496522&idx=1&sn=81759a0ccef3d0ecd9255a2c3996b72d&chksm=c2d7f4c3f5a07dd5d8a48bca1bebb5c37cce5114665ebb750e449671828520f0fe251efa3503&token=2075738930&lang=zh_CN#rd)
### 精华面经
### 精华面经
1. [美团优选大数据开发岗面试真题-附答案详细解析](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247492683&idx=1&sn=6a7483a9ad93493555a52a419b960ed1&chksm=e8dbbc99dfac358f95524c7bc90a4a2dc4699ce376f19b613b2aee984bb03b1a31da9cd8cd7e&token=1777830110&lang=zh_CN#rd)
### 有趣有料
### 🍯 有趣有料
1. [ETL和ELT到底有啥区别](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247494017&idx=1&sn=92c3f3991eeece3d092eeaa69bc25e89&chksm=e8dbb153dfac3845510b85da4c583bf3a2343e51b8180f908a43537173cebdbe14277558dbd7&token=1073059733&lang=zh_CN#rd)
2. [为什么我们选择基于 Flink 搭建实时个性化营销平台?](https://mp.weixin.qq.com/s/451BFoJDbkvlDc0inOukcw)
3. [以直播平台监控用户弹幕为例详解 Flink CEP](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496065&idx=1&sn=fc03486210be0a4bd447761b3b883bd3&chksm=e8dba953dfac204543b0e4ae750af0799b96f626d2de868f31b94151d4d148430dea062b4f7c&token=1693301572&lang=zh_CN#rd)
4. [数据仓库领域常见建模方法及实例演示](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247496184&idx=1&sn=3e85a216b1f4b1c69811b4064999fdce&chksm=e8dba92adfac203cd521815ef23465a56cd9904d08b6d349c92aad9152f041fdb099752a437a&token=1693301572&lang=zh_CN#rd)
5. [数据地图?地图数据?傻傻分不清楚!](https://mp.weixin.qq.com/s?__biz=MzIzNjM2MDEyNQ==&mid=2247495889&idx=1&sn=e44908c9982f2fd8e2ae6d83c09d3b62&chksm=e8dba803dfac2115425036af859c83fda42ac7cd002b581c138331c6c3c316905536d9a5d560&token=1693301572&lang=zh_CN#rd)
6. [漫说数据湖 | 如何建湖如何做数据ETL为什么大数据需要数据湖?](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496226&idx=1&sn=348fb82d271e6547403513dc8d67642f&chksm=c2d7f5abf5a07cbdf26f9e0086ced3bcd1038bf3a5fb514515bb498cf242ff4cae2baebe6829&token=1681044289&lang=zh_CN#rd)
7. [图解Git工作原理](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496767&idx=1&sn=bc90e1c900da05c53451145eed84438c&chksm=c2d7f3b6f5a07aa0a1160919bf67a624495bd1d7540d2b92790d8ce85545055c92844dc62c13&token=2075738930&lang=zh_CN#rd)
8. [假如我是超级卷王 ... ](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496630&idx=1&sn=ee9cd0aab500c279938326bf8ae5401c&chksm=c2d7f43ff5a07d2990f8f966078ab254b3d1aa73d83f8875f0dcf597770a047230842c3efa51&token=2075738930&lang=zh_CN#rd)
9. [上海有哪些互联网,你都知道么?](https://mp.weixin.qq.com/s?__biz=Mzk0MTI0OTI1NA==&mid=2247496389&idx=1&sn=5b379ed66f353ce2553dc54fdbb998b6&chksm=c2d7f54cf5a07c5afa3088fcc29be0002a3be894cf1e514a19c8aef35c9202a11d417876bcf4&token=2075738930&lang=zh_CN#rd)
### 福利
### 🍈 福利
1. [最新Java各知识点综合面试考点+大厂面试题](https://github.com/BigDataScholar/TheKingOfBigData/tree/master/resources/Java%E9%9D%A2%E8%AF%95%E9%A2%98)
2. [上百本免费电子书](https://github.com/BigDataScholar/TheKingOfBigData/tree/master/resources/%E5%85%8D%E8%B4%B9%E7%9A%84%E7%94%B5%E5%AD%90%E4%B9%A6)

View File

@ -1,243 +0,0 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;都说“金九银十”马上十月份即将结束相信还有相当多的小伙伴没找到合适的工作。在笔试过程中总会出现那么一两道“有趣”的SQL题来检测应聘者的一个逻辑思维这对于初入职场的“小白”也是非常不友好。不用担心本篇博客博主整理了几道在面试中高频出现的“SQL”笔试题助你在接下来的面试中一往无前势如破竹!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013094143159.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMxODgzMA==,size_16,color_FFFFFF,t_70#pic_center)
***
## 1、查询连续登陆3天以上的用户
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是一道非常经典的问题,这里提供其中一种思路。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表信息如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013100733902.png?==,size_16,color_FFFFFF,t_70#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
### step1: 用户登录日期去重
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为一个用户同一天可能登录多次,所以我们首先需要用用户登录日期去重。
```sql
select DISTINCT date(date) as "日期",id from demo01;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013101051631.png?==,size_16,color_FFFFFF,t_70#pic_center)
### step2: 用row_number() over()函数计数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有了第一步去重后的结果我们可以对其进行开窗以id分组日期升序排序获取到每个日期的排名。
```sql
select *,row_number() over(PARTITION by id order by `日期`) as cum from (select DISTINCT date(date) as `日期`,id from demo01)a;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询结果:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013110047271.png?==,size_16,color_FFFFFF,t_70#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;相信看到这里,各位小伙伴已经看出其中的“玄机”了~为什么我们需要在这一步对时间进行一个排序呢?
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可以发现用row_number开窗之后的名次是连续的那么如果日期也是连续的它们的差值不就是一个固定的值了吗?
### step3:日期减去计数值得到结果
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为菌哥这里演示用的是hql所以这里获取日期差值使用了`date_sub`函数。
```sql
select *,date_sub(`日期`,cum) as `结果` from (select *,row_number() over(PARTITION by id order by `日期`) as cum from (select DISTINCT date(date) as `日期`,id from demo01)a)b;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询结果:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013111712629.png?==,size_16,color_FFFFFF,t_70#pic_center)
### step4:根据id和结果分组并计算count
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后一步我们直接根据step3中获取到的差值根据id和差值进行一个分组求count即可。如果是要求连续登录3天以上我们直接判断 count 的个数大于等于3即可。
```sql
select id,count(*) from (select *,date_sub(`日期`,cum) as `结果` from (select *,row_number() over(PARTITION by id order by `日期`) as cum from (select DISTINCT date(date) as `日期`,id from demo01)a)b)c GROUP BY id,`结果` having count(*)>=3;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013114915744.png#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;答案已经出来了id为1和3的用户至少连续登录了3天及以上他们分别连续登录的时长为3天和4天。
## 2、统计每个用户的累计访问次数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个同样也是经常在笔试中出现的题目,大家可以根据作者的思路回顾一下:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表信息如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013130135947.png?==,size_16,color_FFFFFF,t_70#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求使用SQL统计出每个用户的累积访问次数如下表所示
| 用户id | 月份 |小计|累积
|--|--|--|--|
|u01 | 2017-01 |11|11
|u01|2017-02|12|23
|u02|2017-01|12|12
|u03|2017-01|8|8
|u04|2017-01|3|3
### step1: 修改数据格式
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从结果反推,需要查询实现按照 **年-月** 分组的数据,所以我们这一步先对原数据进行一个处理。
```sql
select
userId,
date_format(regexp_replace(visitDate,'/','-'),'yyyy-MM') mn,
visitCount
from
action;t1
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;处理结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013131502308.png?=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMxODgzMA==,size_16,color_FFFFFF,t_70#pic_center)
### step2: 计算每人单月访问量
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了让子查询看起来更加的美观我们这里先用t1代替上一步的结果。通过这一步我们就可以获取到每个用户每个月的访问量。
```sql
select
userId,
mn,
sum(visitCount) mn_count
from
t1
group by userId,mn;t2
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询的结果:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013131843903.png#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
### step3: 按月累计计算访问量
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们将第二步的结果用变量 t2 来表示。到这一步我们用一个sum开窗函数对userid进行分组mn时间进行排序即可大功告成。
```sql
select
userId,
mn,
mn_count,
sum(mn_count) over(partition by userId order by mn) mn_all
from t2;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最终结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013132533717.png#pic_center)
### 完整SQL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color='red'>温馨提示:</font><font color='gray'>上述的步骤展示的都是不完整的SQL每步使用变量代替前一步的SQL语句只是为了方便给大家展示实际上运行的结果都是作者将完整的SQL放进去跑的哈~</font>
```sql
select
userId,
mn,
mn_count,
sum(mn_count) over(partition by userId order by mn) mn_all
from
( select
userId,
mn,
sum(visitCount) mn_count
from
(select
userId,
date_format(regexp_replace(visitDate,'/','-'),'yyyy-MM') mn,
visitCount
from
action)t1
group by userId,mn)t2;
```
## 3、分组TopN
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有50W个店铺每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志访问日志存储的表名为Visit访客的用户id为user_id被访问的店铺名称为shop。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013133846379.png?==,size_16,color_FFFFFF,t_70#pic_center)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需求每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数。
### step1查询每个店铺被每个用户访问次数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为我们最终需要获取每个店铺访问量top3的用户信息所以在这一步我们就先把每个店铺的每个用户的访问次数计算出来。
```sql
select shop,user_id,count(*) ct
from visit
group by shop,user_id;t1
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;计算结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020101313450784.png?=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMxODgzMA==,size_16,color_FFFFFF,t_70#pic_center)
### step2:计算每个店铺被用户访问次数排名
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有了第一步每个店铺下所被访问用户的访问量,我们想获取前三,毫无疑问,我们需要使用到开窗函数 rank。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可能就有朋友问了,为什么不能用 **row_number**
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要还是 **row_number** 对于相同数据的排名不是一样的如果我们取Topic3,出现了相同访问次数的数据,那我们肯定都得保留下来的对吧~~
```sql
select shop,user_id,ct,rank() over(partition by shop order by ct) rk
from t1;t2
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;计算结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013135308366.png?=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMxODgzMA==,size_16,color_FFFFFF,t_70#pic_center)
### step3: 取每个店铺排名前3的数据
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有了 step2 的结果,我们想要取每个店铺前三的数据岂不是轻而易举~
```sql
select shop,user_id,ct
from t2
where rk<=3;
```
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;计算结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013135620764.png?=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMxODgzMA==,size_16,color_FFFFFF,t_70#pic_center)
### 完整SQL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好了结果已经查询出来了这里把上面step的SQL整合到一起~
```sql
select
shop,
user_id,
ct
from
(select
shop,
user_id,
ct,
rank() over(partition by shop order by ct) rk
from
(select
shop,
user_id,
count(*) ct
from visit
group by
shop,
user_id)t1
)t2
where rk<=3;
```
## 结语
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们不论是看书还是刷题,不在于数量多少,而一定要求“精”。这就要求我们学会去思考,学会举一反三。真正具备解题能力的人,我相信一定不是把时间花在大量刷题上,而是懂得从不同类型的习题上,及时总结复习的人。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上3道SQL“小菜”怕是满足不了大伙以后有机会再为大家总结些别的题目本篇文章到这里就结束了。对技术宇宙充满好奇喜欢本文的朋友可以扫码关注作者原创公众号【大数据梦想家】我们下期见!
<img src="https://img-blog.csdnimg.cn/20210119135940253.png" width = 99% height = 50% />