我还不是 DBA,但这似乎是 DBA 类型的问题,而不是编程问题。
有人问我:
由于需要在实时环境中运行,这变得很复杂。我们的愿望似乎是自动化一些维护过程,以修复我们发现的任何问题,并为开发提供输入以阻止他们做坏事。
我的第一个想法是——招聘一名 DBA,可能是一名顾问。
然后,所要求的规模之大令我震惊。一个项目可能会持续数月,其中一台 SQL Server 和多台应用程序服务器共享任务。此输出的数据量将是巨大的,监视每个正在执行的查询的性能开销也将是巨大的。
有没有推荐的此类分析工具?
我有3张桌子。
我需要使用特定WHERE条件检查这些表中是否存在特定标识符。我需要从所有 3 个表中获取数据。
我已经试过LEFT JOIN,RIGHT JOIN而且FULL OUTER JOIN但我无法得到中间表的值。
我的查询尝试是:
Select t1.col1, t2.col2, t3.col3
from t1
left outer join t2
on t1.id=t2.id
full outer join t3
on t1.id=t3.id
where t.id= '101';
Run Code Online (Sandbox Code Playgroud)
我无法获得仅存在于 t2 表中的值。
我需要按两列的差异对表格进行排序
SELECT (first - second) AS dif
FROM table1
ORDER BY dif DESC
Run Code Online (Sandbox Code Playgroud)
但两列可以NULL。在这种情况下,它返回错误:
BIGINT UNSIGNED value is out of range
Run Code Online (Sandbox Code Playgroud)
这个错误的解决方案是使用IFNULL(col,0),但问题是,我需要dif是NULL,如果任一列是NULL
我处于需要查询数据库中的数据的情况,但正在努力解决如何正确形成查询的问题。基本上我需要从下表中获取数据:
Table: Contact
contact_id INT [Primary Key]
first_name VARCHAR(50)
last_name VARCHAR(50)
Table: Contact_Phone
contact_id INT [Foreign Key/Composite Primary Key]
phone_number VARCHAR(15) [Composite Primary Key]
extension VARCHAR(10), NULL
Table: Contact_Fax
contact_id INT [Foreign Key/Composite Primary Key]
fax_number VARCHAR(15) [Composite Primary Key]
Table: Contact_Email
contact_id INT [Foreign Key/Composite Primary Key]
email VARCHAR(100) [Composite Primary Key]
Run Code Online (Sandbox Code Playgroud)
现在并不是我Contacts桌子上的每个联系人都有电话、传真或电子邮件。有些人只有一部电话或传真。其他人只是一封电子邮件。我知道有一个联系人只有一个电话号码。
现在我的问题是,如果我尝试对所有这些表进行简单的查询以查找特定的联系信息,如果其中任何一个都没有条目(例如,我的一个没有传真或电子邮件的联系人) 然后我根本没有返回任何数据。
所以问题是,我如何将这个查询放在一起,以便如果我试图查找特定联系人的信息,即使其中一个发生,我仍然能够看到所有数据(电话/传真/电子邮件)是空白?
我想根据各种条件对列进行 SUM 。在此示例中,对于列'fac_saldo_tot',如果值大于 500,则添加该列并将它们分组到列'cli_razon_soc'
我做了这个查询,但我不执行操作它只存储较高的值到 500 否则它把 0。 见图像(红色列)
SELECT cli_razon_soc,
CASE WHEN t .fac_saldo_tot > 500 THEN SUM(t .fac_saldo_tot) ELSE 0 END AS 'Mayor500'
FROM cdc_vw_BuroCredito_Facturas95 AS t
GROUP BY cli_razon_soc, fac_saldo_tot
ORDER BY cli_razon_soc, 'Mayor500'
Run Code Online (Sandbox Code Playgroud)
我很感激你能给我的建议
这是我想要的结果
我遇到了与在单个结果中连接一对多字段相同的问题?,但我需要一个结果,其中“许多”字段占据自己的列并且没有连接在一列中。有什么建议?
样本数据:
___ID Mapped_Heading Source_Value
1 English pass
1 Math pass
1 History fail
___ID Name Age
1 Bob 12
2 Harry 12
3 Emily 14
Run Code Online (Sandbox Code Playgroud)
最终结果将是:
___ID Name Age English Math History
1 Bob 12 pass pass fail
Run Code Online (Sandbox Code Playgroud)
我希望我也不会用PIVOT和PARTITION BY,因为我不熟悉这些功能,但我一直撞到他们对于这个问题这么认为,我可能有什么打算?
第三方 API 公开接受“SQL”查询的端点。他们的示例是简单的SELECT语句,但我想编写更复杂的查询。
他们没有指定他们使用的是哪个 SQL 品牌,这意味着我不知道应该遵循的确切语法。
如何使用一个或多个 SQL 查询(无命令行访问、文件权限等)识别 SQL 品牌(SQL Server、MySQL、Azure SQL、Postgres 等)?
我有一个这样的查询:
SELECT
BE.NAME as NAME,
BE.PREVIEW_TEXT as PREVIEW_TEXT,
BE.ID as ID,
FPV1.VALUE as PROPERTY_COUNTRY_VALUE,
FPV1.ID as PROPERTY_COUNTRY_VALUE_ID,
FPV2.VALUE as PROPERTY_TOUR_TYPE_VALUE,
FPV2.ID as PROPERTY_TOUR_TYPE_VALUE_ID,
FPV3.VALUE as PROPERTY_DAYS_VALUE,
FPV3.ID as PROPERTY_DAYS_VALUE_ID,
FPV4.VALUE as PROPERTY_PRICE_VALUE,
FPV4.ID as PROPERTY_PRICE_VALUE_ID,
FPV5.VALUE as PROPERTY_CURRENCY_VALUE,
FPV5.ID as PROPERTY_CURRENCY_VALUE_ID,
FPV6.VALUE as PROPERTY_DATE_FROM_VALUE,
FPV6.ID as PROPERTY_DATE_FROM_VALUE_ID,
FPV7.VALUE as PROPERTY_DATE_TO_VALUE,
FPV7.ID as PROPERTY_DATE_TO_VALUE_ID,
FPV8.VALUE as PROPERTY_FLIGHT_FROM_VALUE,
FPV8.ID as PROPERTY_FLIGHT_FROM_VALUE_ID,
FPV9.VALUE as PROPERTY_MT_ID_VALUE,
FPV9.ID as PROPERTY_MT_ID_VALUE_ID,
FPV10.VALUE as PROPERTY_PRICE_FILE_VALUE,
FPV10.ID as PROPERTY_PRICE_FILE_VALUE_ID,
BE.PREVIEW_PICTURE as PREVIEW_PICTURE,
FPV11.VALUE as PROPERTY_PRICE_HAND_VALUE,
FPV11.ID as PROPERTY_PRICE_HAND_VALUE_ID, …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写查询。A 列来自数据库,B 列是 1 或 -1,它是查看同一个表的 CASE 语句的结果。现在,我的 C 列需要引用 B 列作为其计算的一部分(假设它是 Column_B * Column_X )。这是如何完成的,因为我无法在 SELECT 语句中使用 Column_B。