MDETERMN
Updated 2023-10-16 20:33:58.327000
Syntax
SELECT [westclintech].[wct].[MDETERMN] (
<@Matrix_TableName, nvarchar(4000),>
,<@Key1Columnname, nvarchar(4000),>
,<@Key2ColumnName, nvarchar(4000),>
,<@DataColumnName, nvarchar(4000),>
,<@GroupedColumnName, nvarchar(4000),>
,<@GroupedColumnValue, sql_variant,>)
Description
Use the scalar function MDETERMN to calculate the determinant of an N x N matrix, where N specifies the number of columns in the matrix. For matrices in de-normalized form, use the MDETERM function.
Arguments
@GroupedColumnName
the name, as text, of the column in the table or view specified by @TableName which will be used for grouping the results.
@Key1Columnname
the name, as text, of the column in the table or view specified by @Matrix_TableName that contains the ‘row number’ value used in storing the normalized matrix.
@DataColumnName
The name, as text, of the column in the table or view specified by @Matrix_TableName that contains the matrix values to be used in the determinant. Data returned from the @DataColumnName must be of the type float or of a type that implicitly converts to float.
@GroupedColumnValue
the column value to do the grouping on.
@Key2ColumnName
the name, as text, of the column in the table or view specified by @Matrix_TableName that contains the ‘column number’ value used in storing the normalized matrix.
@Matrix_TableName
the name, as text, of the table or view that contains the matrix values to be used in the MDETERMN calculation.
Return Type
float
Remarks
If the number of rows in the matrix is not equal to the number of columns, MDETERMN will return an error.
No GROUP BY is required for this function even though it produces aggregated results.
Use the MDETERMN_q function for more complex queries.
Use MDETERM for a de-normalized table.
The function returns an error if the matrix contains NULL.
Examples
CREATE TABLE #m
(
rowno int,
colno int,
val float
);
INSERT INTO #m
VALUES
(0, 0, 1);
INSERT INTO #m
VALUES
(0, 1, 2);
INSERT INTO #m
VALUES
(0, 2, 3);
INSERT INTO #m
VALUES
(0, 3, 10);
INSERT INTO #m
VALUES
(1, 0, 6);
INSERT INTO #m
VALUES
(1, 1, 4);
INSERT INTO #m
VALUES
(1, 2, 4);
INSERT INTO #m
VALUES
(1, 3, 11);
INSERT INTO #m
VALUES
(2, 0, 7);
INSERT INTO #m
VALUES
(2, 1, 8);
INSERT INTO #m
VALUES
(2, 2, 9);
INSERT INTO #m
VALUES
(2, 3, 12);
INSERT INTO #m
VALUES
(3, 0, 16);
INSERT INTO #m
VALUES
(3, 1, 15);
INSERT INTO #m
VALUES
(3, 2, 14);
INSERT INTO #m
VALUES
(3, 3, 13);
SELECT wct.MDETERMN('#m', 'rowno', 'colno', 'val', '', NULL) as [|A|];
This produces the following result.
{"columns":[{"field":"|A|","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"|A|":"208"}]}