Группируем записи из HL-блока Test1 по имени (UF_NAME) и выводим топ-10 самых часто встречающихся имён с количеством их повторений, используя ORM-поддержку вычисляемых полей через runtime.
| Код |
|---|
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Loader;
Loader::includeModule('highloadblock');
$hlBlock = HL\HighloadBlockTable::getList(['filter' => ['=NAME' => 'Test1']])->fetch();
if ($hlBlock) {
$entity = HL\HighloadBlockTable::compileEntity($hlBlock);
$dataClass = $entity->getDataClass();
$result = $dataClass::getList([
'select' => ['UF_NAME', 'CNT'],
'runtime' => [
'CNT' => [
'data_type' => 'integer',
'expression' => ['COUNT(*)'],
]
],
'group' => ['UF_NAME'],
'order' => ['CNT' => 'DESC'],
'limit' => 10
])->fetchAll();
foreach ($result as $row) {
echo "Имя: {$row['UF_NAME']}, Количество: {$row['CNT']}" . PHP_EOL;
}
}
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php'); |